Sha256: bc5fa01a2137db90611964d2fa01e9239185b94c7bce9a2e5543ba0efdc94403

Contents?: true

Size: 1.38 KB

Versions: 10

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true
require "json"

module Licensed
  module Sources
    class Bower < Source
      def enabled?
        [@config.pwd.join(".bowerrc"), @config.pwd.join("bower.json")].any? do |path|
          File.exist?(path)
        end
      end

      def enumerate_dependencies
        Dir.glob(bower_path.join("*/.bower.json")).map do |file|
          package = JSON.parse(File.read(file))
          path = bower_path.join(file).dirname.to_path
          Dependency.new(
            name: package["name"],
            version: package["version"] || package["_release"],
            path: path,
            metadata: {
              "type"     => Bower.type,
              "summary"  => package["description"],
              "homepage" => package["homepage"]
            }
          )
        end
      end

      # Returns a parsed ".bowerrc" configuration, or an empty hash if not found
      def bower_config
        @bower_config ||= begin
          path = @config.pwd.join(".bowerrc")
          path.exist? ? JSON.parse(path.read) : {}
        end
      end

      # Returns the expected path to bower components.
      # Note this does not validate that the returned path is valid
      def bower_path
        pwd = bower_config["cwd"] ? Pathname.new(bower_config["cwd"]).expand_path : @config.pwd
        pwd.join bower_config["directory"] || "bower_components"
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
licensed-2.6.0 lib/licensed/sources/bower.rb
licensed-2.5.0 lib/licensed/sources/bower.rb
licensed-2.4.0 lib/licensed/sources/bower.rb
licensed-2.3.2 lib/licensed/sources/bower.rb
licensed-2.3.1 lib/licensed/sources/bower.rb
licensed-2.3.0 lib/licensed/sources/bower.rb
licensed-2.2.0 lib/licensed/sources/bower.rb
licensed-2.1.0 lib/licensed/sources/bower.rb
licensed-2.0.1 lib/licensed/sources/bower.rb
licensed-2.0.0 lib/licensed/sources/bower.rb