Sha256: 48eaca0368831ed4c2b4571fc58d5693b9d353e32d06e5ab60f6af4b7a5d99bf

Contents?: true

Size: 1.38 KB

Versions: 62

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

62 entries across 62 versions & 1 rubygems

Version Path
licensed-5.0.3 lib/licensed/sources/bower.rb
licensed-5.0.2 lib/licensed/sources/bower.rb
licensed-5.0.1 lib/licensed/sources/bower.rb
licensed-5.0.0 lib/licensed/sources/bower.rb
licensed-4.5.0 lib/licensed/sources/bower.rb
licensed-4.4.0 lib/licensed/sources/bower.rb
licensed-4.3.1 lib/licensed/sources/bower.rb
licensed-4.3.0 lib/licensed/sources/bower.rb
licensed-4.2.0 lib/licensed/sources/bower.rb
licensed-4.1.0 lib/licensed/sources/bower.rb
licensed-4.0.4 lib/licensed/sources/bower.rb
licensed-4.0.3 lib/licensed/sources/bower.rb
licensed-4.0.2 lib/licensed/sources/bower.rb
licensed-4.0.1 lib/licensed/sources/bower.rb
licensed-4.0.0 lib/licensed/sources/bower.rb
licensed-3.9.1 lib/licensed/sources/bower.rb
licensed-3.9.0 lib/licensed/sources/bower.rb
licensed-3.8.0 lib/licensed/sources/bower.rb
licensed-3.7.5 lib/licensed/sources/bower.rb
licensed-3.7.4 lib/licensed/sources/bower.rb