teapot 0.9.10 → 1.0.0.pre.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -3
  3. data/README.md +3 -4
  4. data/Rakefile +3 -6
  5. data/bin/teapot +3 -7
  6. data/lib/teapot/build.rb +166 -18
  7. data/lib/teapot/configuration.rb +0 -1
  8. data/lib/teapot/context.rb +37 -21
  9. data/lib/teapot/controller/build.rb +24 -7
  10. data/lib/teapot/controller/fetch.rb +1 -1
  11. data/lib/teapot/controller.rb +1 -0
  12. data/lib/teapot/definition.rb +1 -1
  13. data/lib/teapot/dependency.rb +2 -6
  14. data/lib/teapot/environment/base.rb +7 -15
  15. data/lib/teapot/environment/constructor.rb +28 -0
  16. data/lib/teapot/environment/flatten.rb +42 -1
  17. data/lib/teapot/environment/system.rb +3 -3
  18. data/lib/teapot/extractors/linker_extractor.rb +2 -2
  19. data/lib/teapot/loader.rb +9 -11
  20. data/lib/teapot/name.rb +4 -0
  21. data/lib/teapot/package.rb +5 -4
  22. data/lib/teapot/repository.rb +29 -1
  23. data/lib/teapot/rule.rb +196 -0
  24. data/lib/teapot/rulebook.rb +91 -0
  25. data/lib/teapot/target.rb +15 -40
  26. data/lib/teapot/version.rb +1 -1
  27. data/{lib/teapot/build/targets/application.rb → spec/teapot/build_spec.rb} +26 -29
  28. data/{test/test_teapot.rb → spec/teapot/context_spec.rb} +13 -13
  29. data/spec/teapot/dependency_spec.rb +113 -0
  30. data/spec/teapot/environment_spec.rb +91 -0
  31. data/{lib/teapot/build/graph.rb → spec/teapot/name_spec.rb} +26 -26
  32. data/{test/test_substitutions.rb → spec/teapot/substitutions_spec.rb} +36 -36
  33. data/{test → spec/teapot}/teapot.rb +1 -1
  34. data/teapot.gemspec +16 -9
  35. metadata +98 -51
  36. data/lib/teapot/build/component.rb +0 -69
  37. data/lib/teapot/build/file_list.rb +0 -67
  38. data/lib/teapot/build/linker.rb +0 -49
  39. data/lib/teapot/build/target.rb +0 -76
  40. data/lib/teapot/build/targets/compiler.rb +0 -83
  41. data/lib/teapot/build/targets/directory.rb +0 -63
  42. data/lib/teapot/build/targets/executable.rb +0 -56
  43. data/lib/teapot/build/targets/external.rb +0 -91
  44. data/lib/teapot/build/targets/files.rb +0 -82
  45. data/lib/teapot/build/targets/library.rb +0 -117
  46. data/lib/teapot/commands.rb +0 -139
  47. data/lib/teapot/controller/run.rb +0 -43
  48. data/lib/teapot/graph.rb +0 -136
  49. data/test/test_dependency.rb +0 -112
  50. data/test/test_environment.rb +0 -102
@@ -0,0 +1,113 @@
1
+ # Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require 'teapot/dependency'
22
+
23
+ module Teapot::DependencySpec
24
+ class BasicDependency
25
+ include Teapot::Dependency
26
+
27
+ def initialize(name = nil)
28
+ @name = name
29
+ end
30
+
31
+ attr :name
32
+ end
33
+
34
+ describe Teapot::Dependency do
35
+ it "Should resolve dependency chain" do
36
+ a = BasicDependency.new
37
+
38
+ a.provides 'apple' do
39
+ fruit ['apple']
40
+ end
41
+
42
+ b = BasicDependency.new
43
+
44
+ b.provides 'orange' do
45
+ fruit ['orange']
46
+ end
47
+
48
+ c = BasicDependency.new
49
+
50
+ c.provides 'fruit-juice' do
51
+ juice ['ice', 'cold']
52
+ end
53
+
54
+ c.depends 'apple'
55
+ c.depends 'orange'
56
+
57
+ chain = Teapot::Dependency::chain([], ['fruit-juice'], [a, b, c])
58
+ expect(chain.ordered.collect(&:first)).to be == [a, b, c]
59
+
60
+ d = BasicDependency.new
61
+
62
+ d.provides 'pie' do
63
+ end
64
+
65
+ d.depends 'apple'
66
+
67
+ chain = Teapot::Dependency::chain([], ['pie'], [a, b, c, d])
68
+
69
+ expect(chain.unresolved).to be == []
70
+ expect(chain.ordered.collect(&:first)).to be == [a, d]
71
+ end
72
+
73
+ it "should report conflicts" do
74
+ apple = BasicDependency.new('apple')
75
+ apple.provides 'apple'
76
+ apple.provides 'fruit'
77
+
78
+ bananna = BasicDependency.new('bananna')
79
+ bananna.provides 'fruit'
80
+
81
+ salad = BasicDependency.new('salad')
82
+ salad.depends 'fruit'
83
+ salad.provides 'salad'
84
+
85
+ chain = Teapot::Dependency::Chain.new([], ['salad'], [apple, bananna, salad])
86
+ expect(chain.unresolved.first).to be == ["fruit", salad]
87
+ expect(chain.conflicts).to be == {"fruit" => [apple, bananna]}
88
+
89
+ chain = Teapot::Dependency::Chain.new(['apple'], ['salad'], [apple, bananna, salad])
90
+ expect(chain.unresolved).to be == []
91
+ expect(chain.conflicts).to be == {}
92
+ end
93
+
94
+ it "should resolve aliases" do
95
+ apple = BasicDependency.new('apple')
96
+ apple.provides 'apple'
97
+ apple.provides :fruit => 'apple'
98
+
99
+ bananna = BasicDependency.new('bananna')
100
+ bananna.provides 'bananna'
101
+ bananna.provides :fruit => 'bananna'
102
+
103
+ salad = BasicDependency.new('salad')
104
+ salad.depends :fruit
105
+ salad.provides 'salad'
106
+
107
+ chain = Teapot::Dependency::chain(['apple'], ['salad'], [apple, bananna, salad])
108
+ expect(chain.unresolved).to be == []
109
+ expect(chain.conflicts).to be == {}
110
+ expect(chain.ordered).to be == [[apple, "apple"], [salad, "salad"]]
111
+ end
112
+ end
113
+ end
@@ -0,0 +1,91 @@
1
+ # Copyright, 2012, by Samuel G. D. Williams. <http://www.codeotaku.com>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
4
+ # of this software and associated documentation files (the "Software"), to deal
5
+ # in the Software without restriction, including without limitation the rights
6
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
+ # copies of the Software, and to permit persons to whom the Software is
8
+ # furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in
11
+ # all copies or substantial portions of the Software.
12
+ #
13
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
+ # THE SOFTWARE.
20
+
21
+ require 'teapot/environment'
22
+
23
+ module Teapot::EnvironmentSpec
24
+ describe Teapot::Environment do
25
+ it "should chain environments together" do
26
+ a = Teapot::Environment.new
27
+ a[:cflags] = ["-std=c++11"]
28
+
29
+ b = Teapot::Environment.new(a, {})
30
+ b[:cflags] = ["-stdlib=libc++"]
31
+ b[:rcflags] = lambda {cflags.reverse}
32
+
33
+ expect(b.flatten.to_hash).to be == {:cflags => ["-std=c++11", "-stdlib=libc++"], :rcflags => ["-stdlib=libc++", "-std=c++11"]}
34
+ end
35
+
36
+ it "should resolve nested lambda" do
37
+ a = Teapot::Environment.new do
38
+ sdk "bob-2.6"
39
+ cflags [->{"-sdk=#{sdk}"}]
40
+ end
41
+
42
+ b = Teapot::Environment.new(a) do
43
+ sdk "bob-2.8"
44
+ end
45
+
46
+ c = Teapot::Environment.new(b) do
47
+ cflags ["-pipe"]
48
+ end
49
+
50
+ expect(b.flatten.to_hash.keys.sort).to be == [:cflags, :sdk]
51
+
52
+ expect(Teapot::Environment::System::convert_to_shell(b.flatten)).to be == {
53
+ 'SDK' => "bob-2.8",
54
+ 'CFLAGS' => "-sdk=bob-2.8"
55
+ }
56
+
57
+ expect(c.flatten[:cflags]).to be == %W{-sdk=bob-2.8 -pipe}
58
+ end
59
+
60
+ it "should combine environments" do
61
+ a = Teapot::Environment.new(nil, {:name => 'a'})
62
+ b = Teapot::Environment.new(a, {:name => 'b'})
63
+ c = Teapot::Environment.new(nil, {:name => 'c'})
64
+ d = Teapot::Environment.new(c, {:name => 'd'})
65
+
66
+ top = Teapot::Environment.combine(b, d)
67
+
68
+ expect(top.values).to be == d.values
69
+ expect(top.parent.values).to be == c.values
70
+ expect(top.parent.parent.values).to be == b.values
71
+ expect(top.parent.parent.parent.values).to be == a.values
72
+ end
73
+
74
+ it "should combine defaults" do
75
+ local = Teapot::Environment.new do
76
+ architectures ["-m64"]
77
+ end
78
+
79
+ platform = Teapot::Environment.new do
80
+ default architectures ["-arch", "i386"]
81
+ end
82
+
83
+ combined = Teapot::Environment.combine(
84
+ platform,
85
+ local
86
+ )
87
+
88
+ expect(combined[:architectures]).to be == ["-m64"]
89
+ end
90
+ end
91
+ end
@@ -18,33 +18,33 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require 'pathname'
21
+ require 'teapot/name'
22
22
 
23
- require 'teapot/graph'
24
- require 'teapot/extractors/preprocessor_extractor'
25
-
26
- module Teapot
27
- module Build
28
- @@graphs = {}
23
+ module Teapot::NameSpec
24
+ describe Teapot::Name do
25
+ let(:name) {Teapot::Name.new('Foo Bar')}
26
+ it "retains the original text" do
27
+ expect(name.text).to be == 'Foo Bar'
28
+ end
29
29
 
30
- def self.dependency_graph(environment)
31
- @@graphs.fetch(environment) do
32
- graph = Graph.new
33
-
34
- buildflags = environment[:buildflags]
35
- roots = Extractors::PreprocessorExtractor.include_directories(buildflags)
36
-
37
- # At some point, it would be nice if this process could be driven by environment configuration:
38
- patterns = [
39
- /\.c(c|pp)?$/,
40
- /\.h(pp)?$/,
41
- /\.mm?/
42
- ]
43
-
44
- graph.extractors << Extractors::PreprocessorExtractor.new(patterns, roots)
45
-
46
- @@graphs[environment] = graph
47
- end
30
+ it "should generate useful identifiers" do
31
+ expect(name.identifier).to be == 'FooBar'
32
+ end
33
+
34
+ it "should generate useful target names" do
35
+ expect(name.target).to be == 'foo-bar'
36
+ end
37
+
38
+ it "should generate useful macro names" do
39
+ expect(name.macro).to be == 'FOO_BAR'
40
+ end
41
+
42
+ it "should generate useful macro names" do
43
+ expect(name.macro).to be == 'FOO_BAR'
44
+ end
45
+
46
+ it "can be constructed from target name" do
47
+ expect(Teapot::Name.from_target(name.target).text).to be == name.text
48
48
  end
49
49
  end
50
- end
50
+ end
@@ -18,48 +18,48 @@
18
18
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
19
  # THE SOFTWARE.
20
20
 
21
- require "minitest/autorun"
22
-
23
21
  require 'teapot/substitutions'
24
22
 
25
- class TestSubstitutions < MiniTest::Test
26
- def test_symobolic_substitutions
27
- input = <<-EOF
28
- $FOO $BAR
29
- EOF
23
+ module Teapot::SubstitutionsSpec
24
+ describe Teapot::Substitutions do
25
+ it "should substitute symbolic expressions" do
26
+ input = <<-EOF
27
+ $FOO $BAR
28
+ EOF
30
29
 
31
- output = <<-EOF
32
- baz bar
33
- EOF
30
+ output = <<-EOF
31
+ baz bar
32
+ EOF
34
33
 
35
- substitutions = Teapot::Substitutions.new
36
- substitutions['FOO'] = 'baz'
37
- substitutions['BAR'] = 'bar'
34
+ substitutions = Teapot::Substitutions.new
35
+ substitutions['FOO'] = 'baz'
36
+ substitutions['BAR'] = 'bar'
38
37
 
39
- assert_equal output, substitutions.apply(input)
40
- end
41
-
42
- def test_nested_substitutions
43
- input = <<-EOF
44
- <FOO>
45
- $BAR
46
- </FOO>
47
- EOF
38
+ expect(substitutions.apply(input)).to be == output
39
+ end
40
+
41
+ it "should indent nestest expressions" do
42
+ input = <<-EOF
43
+ <FOO>
44
+ $BAR
45
+ </FOO>
46
+ EOF
48
47
 
49
- output = <<-EOF
50
- enter
51
- {
52
- foo
53
- Hello World
54
- bar
55
- }
56
- exit
57
- EOF
48
+ output = <<-EOF
49
+ enter
50
+ {
51
+ foo
52
+ Hello World
53
+ bar
54
+ }
55
+ exit
56
+ EOF
58
57
 
59
- substitutions = Teapot::Substitutions.new
60
- substitutions['FOO'] = ["enter\n{\n", "foo\n", "bar\n", "}\nexit\n"]
61
- substitutions['BAR'] = 'Hello World'
58
+ substitutions = Teapot::Substitutions.new
59
+ substitutions['FOO'] = ["enter\n{\n", "foo\n", "bar\n", "}\nexit\n"]
60
+ substitutions['BAR'] = 'Hello World'
62
61
 
63
- assert_equal output, substitutions.apply(input)
62
+ expect(substitutions.apply(input)).to be == output
63
+ end
64
64
  end
65
- end
65
+ end
@@ -3,7 +3,7 @@
3
3
  # This file is part of the "Teapot" project, and is released under the MIT license.
4
4
  #
5
5
 
6
- teapot_version "0.8"
6
+ teapot_version "1.0.0"
7
7
 
8
8
  define_configuration 'test' do |configuration|
9
9
  configuration.public!
data/teapot.gemspec CHANGED
@@ -23,20 +23,27 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
24
24
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
25
25
  spec.require_paths = ["lib"]
26
-
27
- spec.required_ruby_version = '>= 1.9.3'
28
-
26
+
27
+ spec.required_ruby_version = '>= 2.0'
28
+
29
29
  spec.add_dependency "rainbow", "~> 2.0.0"
30
- spec.add_dependency "rexec", "~> 1.6.0"
31
- spec.add_dependency "trollop"
30
+ spec.add_dependency "trollop", "~> 2.0"
31
+
32
32
  spec.add_dependency "system", "~> 0.1.3"
33
-
34
- spec.add_dependency "graphviz"
35
-
33
+
34
+ spec.add_dependency "graphviz", "~> 0.0.2"
35
+
36
+ spec.add_dependency "build-files", "~> 0.2.3"
37
+ spec.add_dependency "build-graph", "~> 0.3.2"
38
+ spec.add_dependency "build-makefile", "~> 0.2.0"
39
+
40
+ spec.add_dependency "process-daemon", "~> 0.5.5"
41
+ spec.add_dependency "process-group", "~> 0.2.1"
42
+
36
43
  # This could be a good option in the future for teapot fetch:
37
44
  #spec.add_dependency "rugged"
38
45
 
39
46
  spec.add_development_dependency "bundler", "~> 1.3"
40
- spec.add_development_dependency "minitest"
47
+ spec.add_development_dependency "rspec", "~> 3.0.0"
41
48
  spec.add_development_dependency "rake"
42
49
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: teapot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.10
4
+ version: 1.0.0.pre.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-04 00:00:00.000000000 Z
11
+ date: 2014-06-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rainbow
@@ -25,61 +25,117 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: rexec
28
+ name: trollop
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.6.0
33
+ version: '2.0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.6.0
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: trollop
42
+ name: system
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.1.3
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.1.3
55
55
  - !ruby/object:Gem::Dependency
56
- name: system
56
+ name: graphviz
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 0.1.3
61
+ version: 0.0.2
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 0.1.3
68
+ version: 0.0.2
69
69
  - !ruby/object:Gem::Dependency
70
- name: graphviz
70
+ name: build-files
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 0.2.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 0.2.3
83
+ - !ruby/object:Gem::Dependency
84
+ name: build-graph
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 0.3.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 0.3.2
97
+ - !ruby/object:Gem::Dependency
98
+ name: build-makefile
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.2.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.2.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: process-daemon
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 0.5.5
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.5.5
125
+ - !ruby/object:Gem::Dependency
126
+ name: process-group
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.2.1
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 0.2.1
83
139
  - !ruby/object:Gem::Dependency
84
140
  name: bundler
85
141
  requirement: !ruby/object:Gem::Requirement
@@ -95,19 +151,19 @@ dependencies:
95
151
  - !ruby/object:Gem::Version
96
152
  version: '1.3'
97
153
  - !ruby/object:Gem::Dependency
98
- name: minitest
154
+ name: rspec
99
155
  requirement: !ruby/object:Gem::Requirement
100
156
  requirements:
101
- - - ">="
157
+ - - "~>"
102
158
  - !ruby/object:Gem::Version
103
- version: '0'
159
+ version: 3.0.0
104
160
  type: :development
105
161
  prerelease: false
106
162
  version_requirements: !ruby/object:Gem::Requirement
107
163
  requirements:
108
- - - ">="
164
+ - - "~>"
109
165
  - !ruby/object:Gem::Version
110
- version: '0'
166
+ version: 3.0.0
111
167
  - !ruby/object:Gem::Dependency
112
168
  name: rake
113
169
  requirement: !ruby/object:Gem::Requirement
@@ -141,19 +197,6 @@ files:
141
197
  - bin/teapot
142
198
  - lib/teapot.rb
143
199
  - lib/teapot/build.rb
144
- - lib/teapot/build/component.rb
145
- - lib/teapot/build/file_list.rb
146
- - lib/teapot/build/graph.rb
147
- - lib/teapot/build/linker.rb
148
- - lib/teapot/build/target.rb
149
- - lib/teapot/build/targets/application.rb
150
- - lib/teapot/build/targets/compiler.rb
151
- - lib/teapot/build/targets/directory.rb
152
- - lib/teapot/build/targets/executable.rb
153
- - lib/teapot/build/targets/external.rb
154
- - lib/teapot/build/targets/files.rb
155
- - lib/teapot/build/targets/library.rb
156
- - lib/teapot/commands.rb
157
200
  - lib/teapot/configuration.rb
158
201
  - lib/teapot/context.rb
159
202
  - lib/teapot/controller.rb
@@ -163,7 +206,6 @@ files:
163
206
  - lib/teapot/controller/fetch.rb
164
207
  - lib/teapot/controller/generate.rb
165
208
  - lib/teapot/controller/list.rb
166
- - lib/teapot/controller/run.rb
167
209
  - lib/teapot/controller/visualize.rb
168
210
  - lib/teapot/definition.rb
169
211
  - lib/teapot/dependency.rb
@@ -176,22 +218,25 @@ files:
176
218
  - lib/teapot/extractors/linker_extractor.rb
177
219
  - lib/teapot/extractors/preprocessor_extractor.rb
178
220
  - lib/teapot/generator.rb
179
- - lib/teapot/graph.rb
180
221
  - lib/teapot/loader.rb
181
222
  - lib/teapot/merge.rb
182
223
  - lib/teapot/name.rb
183
224
  - lib/teapot/package.rb
184
225
  - lib/teapot/project.rb
185
226
  - lib/teapot/repository.rb
227
+ - lib/teapot/rule.rb
228
+ - lib/teapot/rulebook.rb
186
229
  - lib/teapot/substitutions.rb
187
230
  - lib/teapot/target.rb
188
231
  - lib/teapot/version.rb
232
+ - spec/teapot/build_spec.rb
233
+ - spec/teapot/context_spec.rb
234
+ - spec/teapot/dependency_spec.rb
235
+ - spec/teapot/environment_spec.rb
236
+ - spec/teapot/name_spec.rb
237
+ - spec/teapot/substitutions_spec.rb
238
+ - spec/teapot/teapot.rb
189
239
  - teapot.gemspec
190
- - test/teapot.rb
191
- - test/test_dependency.rb
192
- - test/test_environment.rb
193
- - test/test_substitutions.rb
194
- - test/test_teapot.rb
195
240
  homepage: http://www.kyusu.org
196
241
  licenses:
197
242
  - MIT
@@ -204,12 +249,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
249
  requirements:
205
250
  - - ">="
206
251
  - !ruby/object:Gem::Version
207
- version: 1.9.3
252
+ version: '2.0'
208
253
  required_rubygems_version: !ruby/object:Gem::Requirement
209
254
  requirements:
210
- - - ">="
255
+ - - ">"
211
256
  - !ruby/object:Gem::Version
212
- version: '0'
257
+ version: 1.3.1
213
258
  requirements: []
214
259
  rubyforge_project:
215
260
  rubygems_version: 2.2.2
@@ -217,8 +262,10 @@ signing_key:
217
262
  specification_version: 4
218
263
  summary: Teapot is a tool for managing complex cross-platform builds.
219
264
  test_files:
220
- - test/teapot.rb
221
- - test/test_dependency.rb
222
- - test/test_environment.rb
223
- - test/test_substitutions.rb
224
- - test/test_teapot.rb
265
+ - spec/teapot/build_spec.rb
266
+ - spec/teapot/context_spec.rb
267
+ - spec/teapot/dependency_spec.rb
268
+ - spec/teapot/environment_spec.rb
269
+ - spec/teapot/name_spec.rb
270
+ - spec/teapot/substitutions_spec.rb
271
+ - spec/teapot/teapot.rb