class Kamaze::Project::Tools::Gemspec::Writer::DepGen
Dependencies generator (using a kindo of decorator)
Inspiration taken from “GemspecDepsGen“
Public Class Methods
new(spec_name = 's')
click to toggle source
@param [String] spec_name
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 20 def initialize(spec_name = 's') @spec_name = spec_name.to_s end
Public Instance Methods
dependencies()
click to toggle source
Get dependencies indexed by group
@return [Hash]
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 27 def dependencies {}.yield_self do |dependencies| { default: :runtime, development: :development }.each do |k, type| dependencies[type] = gems_by_group(k).to_a.freeze end dependencies end.freeze end
dependency()
click to toggle source
Get an object describing dependency
@return [Kamaze::Project::Tools::Gemspec::Writer::Dependency]
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 40 def dependency decorator.new(dependencies, @spec_name) end
Protected Instance Methods
decorator()
click to toggle source
@return [Class<Kamaze::Project::Tools::Gemspec::Writer::Dependency>]
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 61 def decorator Kamaze::Project::Tools::Gemspec::Writer::Dependency end
gems_by_group(group)
click to toggle source
Get gems for given group
@param [Symbol|String] group @return [Array]
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 56 def gems_by_group(group) runtime.dependencies.select { |d| d.groups.include?(group.to_sym) }.to_a end
runtime()
click to toggle source
@return [Bundler::Runtime]
# File lib/kamaze/project/tools/gemspec/writer/dep_gen.rb, line 47 def runtime # Bundler.environment has been removed in favor of Bundler.load Bundler.public_send(Bundler.respond_to?(:load) ? :load : :environment) end