Class: Envandle::Elements::Gemspec

Inherits:
Envandle::Element show all
Extended by:
AsContext
Defined in:
lib/envandle/elements/gemspec.rb

Instance Method Summary collapse

Methods included from AsContext

extended

Methods inherited from Envandle::Element

#<<, #children, #children_by_type, #draw, #dsl, #gemfile, #groups_or_default, #history_argsets, #parse_string_option, #parse_string_value, #send_to_bundler, #send_to_history

Constructor Details

#initializeGemspec

Returns a new instance of Gemspec.



6
7
8
9
10
11
12
# File 'lib/envandle/elements/gemspec.rb', line 6

def initialize(*)
  super
  dev_group = parse_string_option(:development_group, "gemspec's development group") || :development
  @development_group = dev_group ? dev_group.to_s.to_sym : :development
  @name = parse_string_option(:name, "gemspec's name")
  @path = parse_string_option(:path, "gemspec's path")
end

Instance Method Details

#bundler_argsetsObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/envandle/elements/gemspec.rb', line 18

def bundler_argsets
  @bundler_argsets ||= begin
    [].tap do |a|
      path = @path || ::Envandle::Gemspec.find_file(gemfile.dir, name: @name)
      spec = ::Envandle::Gemspec.new(path)
      a << Argset.new(:gem, spec.name, path: ".")
      found = {}
      spec.dependencies.each do |i|
        group = i.type == :development ? @development_group : nil
        argset = Argset.new(nil, i.name, *i.requirements_list)
        argset.options[:group] = group if group
        gem = Gem.new(@loc, @context, *argset.args_and_options)
        gem.extract_bundler_argsets a, found
      end
    end
  end
end

#typeObject



14
15
16
# File 'lib/envandle/elements/gemspec.rb', line 14

def type
  :gemspec
end