Class: Appraisal::BundlerDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/appraisal/bundler_dsl.rb

Direct Known Subclasses

Gemfile, GitSource, Group, PathSource, Platform

Constant Summary collapse

PARTS =
%w(source ruby_version git_sources path_sources dependencies groups
platforms gemspec)

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBundlerDSL

Returns a new instance of BundlerDSL.



11
12
13
14
15
16
17
18
19
20
# File 'lib/appraisal/bundler_dsl.rb', line 11

def initialize
  @sources = []
  @ruby_version = nil
  @dependencies = DependencyList.new
  @gemspec = nil
  @groups = ActiveSupport::OrderedHash.new
  @platforms = ActiveSupport::OrderedHash.new
  @git_sources = ActiveSupport::OrderedHash.new
  @path_sources = ActiveSupport::OrderedHash.new
end

Instance Attribute Details

#dependenciesObject (readonly)

Returns the value of attribute dependencies.



6
7
8
# File 'lib/appraisal/bundler_dsl.rb', line 6

def dependencies
  @dependencies
end

Instance Method Details

#for_dupObject



64
65
66
# File 'lib/appraisal/bundler_dsl.rb', line 64

def for_dup
  Utils.join_parts PARTS.map { |part| send("#{part}_entry_for_dup") }
end

#gem(name, *requirements) ⇒ Object



26
27
28
# File 'lib/appraisal/bundler_dsl.rb', line 26

def gem(name, *requirements)
  @dependencies.add(name, requirements)
end

#gemspec(options = {}) ⇒ Object



68
69
70
# File 'lib/appraisal/bundler_dsl.rb', line 68

def gemspec(options = {})
  @gemspec = Gemspec.new(options)
end

#git(source, options = {}, &block) ⇒ Object



50
51
52
53
# File 'lib/appraisal/bundler_dsl.rb', line 50

def git(source, options = {}, &block)
  @git_sources[source] ||= GitSource.new(source, options)
  @git_sources[source].run(&block)
end

#group(*names, &block) ⇒ Object



30
31
32
33
# File 'lib/appraisal/bundler_dsl.rb', line 30

def group(*names, &block)
  @groups[names] ||= Group.new(names)
  @groups[names].run(&block)
end

#path(source, options = {}, &block) ⇒ Object



55
56
57
58
# File 'lib/appraisal/bundler_dsl.rb', line 55

def path(source, options = {}, &block)
  @path_sources[source] ||= PathSource.new(source, options)
  @path_sources[source].run(&block)
end

#platforms(*names, &block) ⇒ Object Also known as: platform



35
36
37
38
# File 'lib/appraisal/bundler_dsl.rb', line 35

def platforms(*names, &block)
  @platforms[names] ||= Platform.new(names)
  @platforms[names].run(&block)
end

#ruby(ruby_version) ⇒ Object



46
47
48
# File 'lib/appraisal/bundler_dsl.rb', line 46

def ruby(ruby_version)
  @ruby_version = ruby_version
end

#run(&block) ⇒ Object



22
23
24
# File 'lib/appraisal/bundler_dsl.rb', line 22

def run(&block)
  instance_exec(&block)
end

#source(source) ⇒ Object



42
43
44
# File 'lib/appraisal/bundler_dsl.rb', line 42

def source(source)
  @sources << source
end

#to_sObject



60
61
62
# File 'lib/appraisal/bundler_dsl.rb', line 60

def to_s
  Utils.join_parts PARTS.map { |part| send("#{part}_entry") }
end