Sha256: 273be6963d79a87400e539c711475d8495f4dfc5391c2a54da6c38d959e03fb7

Contents?: true

Size: 1.06 KB

Versions: 10

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/core_ext'

module Avm
  module EacRubyBase1
    module Rubygems
      class Gemspec
        require_sub __FILE__, require_dependency: true

        DEPENDENCY_LINE_PARSER = /s\.add_dependency\s*'(\S+)'/.to_parser { |m| m[1] }

        class << self
          def from_file(path)
            new(path.read.each_line.map(&:rstrip))
          end
        end

        common_constructor :lines

        # @return [Avm::EacRubyBase1::Bundler::Gemfile::Dependency]
        def dependency(gem_name)
          ::Avm::EacRubyBase1::Rubygems::Gemspec::Dependency.new(self, gem_name)
        end

        # @return [Array<Avm::EacRubyBase1::Bundler::Gemfile::Dependency>]
        def dependencies
          lines.lazy.map { |line| DEPENDENCY_LINE_PARSER.parse(line) }.compact_blank
            .map { |gem_name| dependency(gem_name) }.to_a
        end

        def write(path)
          path.to_pathname.write(to_text)
        end

        def to_text
          lines.map { |line| "#{line}\n" }.join
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
avm-eac_ruby_base1-0.34.1 lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.91.1 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb
avm-eac_ruby_base1-0.34.0 lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.91.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb
avm-eac_ruby_base1-0.33.1 lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.83.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.82.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.81.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb
avm-eac_ruby_base1-0.33.0 lib/avm/eac_ruby_base1/rubygems/gemspec.rb
eac_tools-0.80.0 sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/rubygems/gemspec.rb