Class: BundlerExt::Gemfile
- Inherits:
-
Object
- Object
- BundlerExt::Gemfile
- Defined in:
- lib/bundler_ext/gemfile.rb
Class Method Summary collapse
- .dependency_in_env?(dep, env) ⇒ Boolean
- .files_for_dependency(dep, env) ⇒ Object
- .parse(gemfile, *groups) ⇒ Object
- .parse_env(groups) ⇒ Object
- .process(bundler_gemfile, env) ⇒ Object
- .setup_env(gemfile) ⇒ Object
Class Method Details
.dependency_in_env?(dep, env) ⇒ Boolean
19 20 21 22 |
# File 'lib/bundler_ext/gemfile.rb', line 19 def self.dependency_in_env?(dep, env) in_group = (env[:groups] & dep.groups).any? || env[:all_groups] in_group && dep.current_platform? end |
.files_for_dependency(dep, env) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/bundler_ext/gemfile.rb', line 24 def self.files_for_dependency(dep, env) files = [] if self.dependency_in_env?(dep, env) Array(dep.autorequire || dep.name).each do |file| files << file end end files end |
.parse(gemfile, *groups) ⇒ Object
43 44 45 46 47 48 |
# File 'lib/bundler_ext/gemfile.rb', line 43 def self.parse(gemfile, *groups) setup_env(gemfile) env = parse_env(groups) gemfile = Bundler::Dsl.evaluate(gemfile, nil, true) process(gemfile, env) end |
.parse_env(groups) ⇒ Object
9 10 11 12 13 14 15 16 17 |
# File 'lib/bundler_ext/gemfile.rb', line 9 def self.parse_env(groups) extra_groups = ENV['BEXT_GROUPS'] || ENV['BUNDLER_EXT_GROUPS'] extra_groups.split(/\s/).each {|g| groups << g.to_sym} if extra_groups all_groups = groups.size == 1 && groups.first == :all && (!extra_groups || extra_groups.empty?) {:groups => groups.map { |g| g.to_sym}, :extra_groups => extra_groups, :all_groups => all_groups} end |
.process(bundler_gemfile, env) ⇒ Object
34 35 36 37 38 39 40 41 |
# File 'lib/bundler_ext/gemfile.rb', line 34 def self.process(bundler_gemfile, env) deps = {} bundler_gemfile.dependencies.each do |dep| files = self.files_for_dependency(dep, env) deps[dep.name] = {:dep => dep, :files => files} unless files.empty? end deps end |
.setup_env(gemfile) ⇒ Object
5 6 7 |
# File 'lib/bundler_ext/gemfile.rb', line 5 def self.setup_env(gemfile) ENV['BUNDLE_GEMFILE'] = gemfile end |