Class: Appraisal::BundlerDSL
- Inherits:
-
Object
- Object
- Appraisal::BundlerDSL
show all
- Defined in:
- lib/appraisal/bundler_dsl.rb
Constant Summary
collapse
- PARTS =
%w[source ruby_version gits paths dependencies groups
platforms source_blocks install_if gemspec]
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#for_dup ⇒ Object
-
#gem(name, *requirements) ⇒ Object
-
#gemspec(options = {}) ⇒ Object
-
#git(source, options = {}, &block) ⇒ Object
-
#git_source(source, &block) ⇒ Object
-
#group(*names, &block) ⇒ Object
-
#initialize ⇒ BundlerDSL
constructor
A new instance of BundlerDSL.
-
#install_if(condition, &block) ⇒ Object
-
#path(source, options = {}, &block) ⇒ Object
-
#platforms(*names, &block) ⇒ Object
(also: #platform)
-
#remove_gem(name) ⇒ Object
-
#ruby(ruby_version) ⇒ Object
-
#run(&block) ⇒ Object
-
#source(source, &block) ⇒ Object
-
#to_s ⇒ Object
Constructor Details
Returns a new instance of BundlerDSL.
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'lib/appraisal/bundler_dsl.rb', line 12
def initialize
@sources = []
@ruby_version = nil
@dependencies = DependencyList.new
@gemspecs = []
@groups = {}
@platforms = {}
@gits = {}
@paths = {}
@source_blocks = {}
@git_sources = {}
@install_if = {}
end
|
Instance Attribute Details
#dependencies ⇒ Object
Returns the value of attribute dependencies.
7
8
9
|
# File 'lib/appraisal/bundler_dsl.rb', line 7
def dependencies
@dependencies
end
|
Instance Method Details
#for_dup ⇒ Object
88
89
90
|
# File 'lib/appraisal/bundler_dsl.rb', line 88
def for_dup
Utils.join_parts(PARTS.map { |part| send("#{part}_entry_for_dup") })
end
|
#gem(name, *requirements) ⇒ Object
30
31
32
|
# File 'lib/appraisal/bundler_dsl.rb', line 30
def gem(name, *requirements)
@dependencies.add(name, substitute_git_source(requirements))
end
|
#gemspec(options = {}) ⇒ Object
92
93
94
|
# File 'lib/appraisal/bundler_dsl.rb', line 92
def gemspec(options = {})
@gemspecs << Gemspec.new(options)
end
|
#git(source, options = {}, &block) ⇒ Object
72
73
74
75
76
|
# File 'lib/appraisal/bundler_dsl.rb', line 72
def git(source, options = {}, &block)
@gits[source] ||=
Git.new(source, options).tap { |g| g.git_sources = @git_sources.dup }
@gits[source].run(&block)
end
|
#git_source(source, &block) ⇒ Object
96
97
98
|
# File 'lib/appraisal/bundler_dsl.rb', line 96
def git_source(source, &block)
@git_sources[source] = block
end
|
#group(*names, &block) ⇒ Object
38
39
40
41
42
|
# File 'lib/appraisal/bundler_dsl.rb', line 38
def group(*names, &block)
@groups[names] ||=
Group.new(names).tap { |g| g.git_sources = @git_sources.dup }
@groups[names].run(&block)
end
|
#install_if(condition, &block) ⇒ Object
44
45
46
47
48
|
# File 'lib/appraisal/bundler_dsl.rb', line 44
def install_if(condition, &block)
@install_if[condition] ||=
Conditional.new(condition).tap { |g| g.git_sources = @git_sources.dup }
@install_if[condition].run(&block)
end
|
#path(source, options = {}, &block) ⇒ Object
78
79
80
81
82
|
# File 'lib/appraisal/bundler_dsl.rb', line 78
def path(source, options = {}, &block)
@paths[source] ||=
Path.new(source, options).tap { |g| g.git_sources = @git_sources.dup }
@paths[source].run(&block)
end
|
50
51
52
53
54
|
# File 'lib/appraisal/bundler_dsl.rb', line 50
def platforms(*names, &block)
@platforms[names] ||=
Platform.new(names).tap { |g| g.git_sources = @git_sources.dup }
@platforms[names].run(&block)
end
|
#remove_gem(name) ⇒ Object
34
35
36
|
# File 'lib/appraisal/bundler_dsl.rb', line 34
def remove_gem(name)
@dependencies.remove(name)
end
|
#ruby(ruby_version) ⇒ Object
68
69
70
|
# File 'lib/appraisal/bundler_dsl.rb', line 68
def ruby(ruby_version)
@ruby_version = ruby_version
end
|
#run(&block) ⇒ Object
26
27
28
|
# File 'lib/appraisal/bundler_dsl.rb', line 26
def run(&block)
instance_exec(&block)
end
|
#source(source, &block) ⇒ Object
58
59
60
61
62
63
64
65
66
|
# File 'lib/appraisal/bundler_dsl.rb', line 58
def source(source, &block)
if block_given?
@source_blocks[source] ||=
Source.new(source).tap { |g| g.git_sources = @git_sources.dup }
@source_blocks[source].run(&block)
else
@sources << source
end
end
|
#to_s ⇒ Object
84
85
86
|
# File 'lib/appraisal/bundler_dsl.rb', line 84
def to_s
Utils.join_parts(PARTS.map { |part| send("#{part}_entry") })
end
|