european-carry-all 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +8 -8
  2. data/Gemfile.lock +1 -1
  3. data/european-carry-all.gemspec +1 -1
  4. data/lib/{european.rb → european-carry-all.rb} +2 -0
  5. data/lib/european/build.rb +1 -1
  6. data/lib/european/build_system.rb +20 -8
  7. data/lib/european/carry_all.rb +126 -19
  8. data/lib/european/deploy_system.rb +57 -0
  9. data/lib/european/name_interpreter.rb +17 -0
  10. data/lib/european/named_carry_all_item.rb +9 -1
  11. data/lib/european/project.rb +21 -6
  12. data/lib/european/version.rb +1 -1
  13. data/spec/data/configs/build.rb +7 -0
  14. data/spec/data/configs/build_system-with-block.rb +4 -0
  15. data/spec/data/configs/build_system.rb +1 -0
  16. data/spec/data/configs/deploy.rb +8 -0
  17. data/spec/data/configs/deploy_system-with-block.rb +4 -0
  18. data/spec/data/configs/deploy_system.rb +1 -0
  19. data/spec/data/configs/jedcn.rb +3 -5
  20. data/spec/data/configs/project-with-block.rb +6 -0
  21. data/spec/data/configs/project.rb +1 -0
  22. data/spec/data/configs/project_defaults.rb +16 -0
  23. data/spec/data/configs/source_system-with-block.rb +3 -0
  24. data/spec/data/configs/source_system.rb +1 -0
  25. data/spec/data/configs/typical-example.rb +26 -0
  26. data/spec/dsl/build_spec.rb +41 -0
  27. data/spec/dsl/build_system_spec.rb +57 -0
  28. data/spec/dsl/deploy_spec.rb +38 -0
  29. data/spec/dsl/deploy_system_spec.rb +57 -0
  30. data/spec/dsl/project_defaults_spec.rb +37 -0
  31. data/spec/dsl/project_spec.rb +50 -0
  32. data/spec/dsl/source_system_spec.rb +53 -0
  33. data/spec/dsl/typical_example_spec.rb +109 -0
  34. data/spec/lib/european/carry_all_spec.rb +6 -47
  35. data/spec/lib/european/name_interpreter_spec.rb +22 -0
  36. data/spec/lib/european/project_spec.rb +36 -12
  37. data/spec/spec_helper.rb +1 -1
  38. metadata +48 -5
@@ -0,0 +1,109 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'EuropeanCarryAll DSL' do
4
+
5
+ describe 'typical usage' do
6
+
7
+ let :file do
8
+ File.join Dir.pwd, 'spec', 'data', 'configs', 'typical-example.rb'
9
+ end
10
+
11
+ let :carry_all do
12
+ European::CarryAll.load_file file
13
+ end
14
+
15
+ let :build_systems do
16
+ carry_all.build_systems
17
+ end
18
+
19
+ let :source_systems do
20
+ carry_all.source_systems
21
+ end
22
+
23
+ let :travis do
24
+ carry_all.build_system named: 'travis-jedcn'
25
+ end
26
+
27
+ let :github do
28
+ carry_all.source_system named: 'github/jedcn'
29
+ end
30
+
31
+ let :projects do
32
+ carry_all.projects
33
+ end
34
+
35
+ describe 'known projects' do
36
+
37
+ let :known_project_names do
38
+ ['reveal-ck', 'reveal-ck-template', 'rake-to-web', 'emacs-setup', 'european-carry-all']
39
+ end
40
+
41
+ it 'includes every declared project' do
42
+ project_names = projects.collect {|project| project.name}
43
+ project_names.should =~ known_project_names
44
+ end
45
+
46
+ end
47
+
48
+ describe 'known build_systems' do
49
+
50
+ let :known_build_systems do
51
+ ['travis-jedcn']
52
+ end
53
+
54
+ it 'includes every declared build_system' do
55
+ build_system_names = build_systems.collect {|build_system| build_system.name}
56
+ build_system_names.should =~ known_build_systems
57
+ end
58
+
59
+ end
60
+
61
+ describe 'known source_systems' do
62
+
63
+ let :known_source_systems do
64
+ ['github/jedcn']
65
+ end
66
+
67
+ it 'includes every declared source_system' do
68
+ source_systems.collect { |source_system| source_system.name }.should =~ known_source_systems
69
+ end
70
+
71
+ end
72
+
73
+ describe 'created object graph' do
74
+
75
+ it 'knits projects, source systems, build systems, and builds together' do
76
+
77
+ reveal_ck = carry_all.project named: 'reveal-ck'
78
+
79
+ # The project's build_system has been set
80
+ reveal_ck.build_systems.first.should == travis
81
+
82
+ # The build_system is aware of the project
83
+ travis.projects.should include reveal_ck
84
+
85
+ reveal_ck_build = reveal_ck.builds.values.first
86
+
87
+ # The build's name has been set
88
+ reveal_ck_build.name.should == 'reveal-ck'
89
+
90
+ # The build is aware of the project that it belongs to
91
+ reveal_ck_build.project.should == reveal_ck
92
+
93
+ # The build is aware of the build system that it belongs to
94
+ reveal_ck_build.build_system.should == travis
95
+
96
+ # travis knows about the build
97
+ travis.build(named: 'reveal-ck').should == reveal_ck_build
98
+
99
+ # reveal_ck knows about its source system
100
+ reveal_ck.source_system.should == github
101
+ github.projects.values.should include reveal_ck
102
+ reveal_ck.src_url.should == 'https://github.com/jedcn/reveal-ck.git'
103
+ end
104
+
105
+ end
106
+
107
+ end
108
+
109
+ end
@@ -22,57 +22,16 @@ module European
22
22
  CarryAll.load_file file
23
23
  end
24
24
 
25
- let :projects do
26
- carry_all.projects
25
+ it 'has #projects' do
26
+ carry_all.should respond_to :projects
27
27
  end
28
28
 
29
- let :reveal_ck do
30
- projects['reveal-ck']
29
+ it 'has #build_systems' do
30
+ carry_all.should respond_to :build_systems
31
31
  end
32
32
 
33
- let :travis do
34
- carry_all.build_systems['travis/jedcn']
35
- end
36
-
37
- let :known_project_names do
38
- ['reveal-ck', 'reveal-ck-template', 'rake-to-web', 'emacs-setup']
39
- end
40
-
41
- describe '#projects' do
42
-
43
- it 'returns a map of European::Projects in the CarryAll' do
44
-
45
- expect(projects.keys).to match_array known_project_names
46
-
47
- carry_all.projects.values.each do |project|
48
- expect(project.class).to eq European::Project
49
- end
50
-
51
- end
52
-
53
- end
54
-
55
- it 'knits projects, source systems, build systems, and builds together' do
56
- # reveal_ck's build system has been set to travis
57
- expect(reveal_ck.build_system).to eq travis
58
-
59
- # travis has been told of reveal_ck
60
- expect(travis.projects.values).to include reveal_ck
61
-
62
- # reveal_ck has a single build
63
- reveal_ck_build = reveal_ck.builds['reveal-ck']
64
- expect(reveal_ck.builds.size).to eq 1
65
-
66
- # The build's name has been set
67
- expect(reveal_ck_build.name).to eq 'reveal-ck'
68
- # The build is aware of the project that it belongs to
69
- expect(reveal_ck_build.project).to eq reveal_ck
70
- # The build is aware of the build system that it belongs to
71
- expect(reveal_ck_build.build_system).to eq travis
72
-
73
- # travis knows about the build
74
- expect(travis.builds['reveal-ck']).to eq reveal_ck_build
75
- expect(reveal_ck.src_url).to eq 'https://github.com/jedcn/reveal-ck.git'
33
+ it 'has #source_systems' do
34
+ carry_all.should respond_to :source_systems
76
35
  end
77
36
 
78
37
  end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ module European
4
+
5
+ describe NameInterpreter do
6
+
7
+ let :name do
8
+ 'prefix/actual/name'
9
+ end
10
+
11
+ let :name_interpreter do
12
+ NameInterpreter.new name
13
+ end
14
+
15
+ it 'knows how to interpret a european name' do
16
+ expect(name_interpreter.prefix).to eq 'prefix'
17
+ expect(name_interpreter.name).to eq 'actual/name'
18
+ end
19
+
20
+ end
21
+
22
+ end
@@ -21,32 +21,56 @@ module European
21
21
 
22
22
  end
23
23
 
24
- describe '#builds_in' do
24
+ describe '#has_build' do
25
25
 
26
26
  let :carry_all do
27
27
  double 'carry_all'
28
28
  end
29
29
 
30
- let :name_of_build_system do
31
- 'name_of_build_system'
30
+ let :name_of_build do
31
+ 'name_of_build'
32
32
  end
33
33
 
34
- it 'registers the referenced build_system with the carry_all' do
35
- project = Project.new({ name: name_of_project, carry_all: carry_all })
36
- carry_all.should_receive(:register).with(project, :builds_in, name_of_build_system)
37
- project.builds_in name_of_build_system
34
+ let :project do
35
+ Project.new({ name: name_of_project, carry_all: carry_all })
36
+ end
37
+
38
+ it 'registers the referenced build with the carry_all' do
39
+ carry_all.should_receive(:register).with(project, :has_build, name_of_build)
40
+ project.has_build name_of_build
38
41
  end
39
42
 
40
43
  end
41
44
 
42
- describe '#has_build' do
45
+ describe '#deploys_from' do
43
46
 
44
47
  let :carry_all do
45
48
  double 'carry_all'
46
49
  end
47
50
 
48
- let :name_of_build do
49
- 'name_of_build'
51
+ let :name_of_deploy_system do
52
+ 'name_of_deploy_system'
53
+ end
54
+
55
+ let :project do
56
+ Project.new({ name: name_of_project, carry_all: carry_all })
57
+ end
58
+
59
+ it 'registers the referenced deploy with the carry_all' do
60
+ carry_all.should_receive(:register).with(project, :deploys_from, name_of_deploy_system)
61
+ project.deploys_from name_of_deploy_system
62
+ end
63
+
64
+ end
65
+
66
+ describe '#has_deploy' do
67
+
68
+ let :carry_all do
69
+ double 'carry_all'
70
+ end
71
+
72
+ let :name_of_deploy do
73
+ 'name_of_deploy'
50
74
  end
51
75
 
52
76
  let :project do
@@ -54,8 +78,8 @@ module European
54
78
  end
55
79
 
56
80
  it 'registers the referenced build with the carry_all' do
57
- carry_all.should_receive(:register).with(project, :has_build, name_of_build)
58
- project.has_build name_of_build
81
+ carry_all.should_receive(:register).with(project, :has_deploy, name_of_deploy)
82
+ project.has_deploy name_of_deploy
59
83
  end
60
84
 
61
85
  end
@@ -1,4 +1,4 @@
1
- require_relative '../lib/european'
1
+ require_relative '../lib/european-carry-all'
2
2
 
3
3
  RSpec.configure do |config|
4
4
  config.treat_symbols_as_metadata_keys_with_true_values = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: european-carry-all
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jed Northridge
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-30 00:00:00.000000000 Z
11
+ date: 2013-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -52,8 +52,7 @@ dependencies:
52
52
  - - ! '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: A scheme for describing project portfolios. It's not a purse, and I'm
56
- not a cat lady!
55
+ description: A scheme for describing project portfolios.
57
56
  email:
58
57
  - northridge@gmail.com
59
58
  executables: []
@@ -70,16 +69,39 @@ files:
70
69
  - LICENSE
71
70
  - Rakefile
72
71
  - european-carry-all.gemspec
73
- - lib/european.rb
72
+ - lib/european-carry-all.rb
74
73
  - lib/european/build.rb
75
74
  - lib/european/build_system.rb
76
75
  - lib/european/carry_all.rb
76
+ - lib/european/deploy_system.rb
77
+ - lib/european/name_interpreter.rb
77
78
  - lib/european/named_carry_all_item.rb
78
79
  - lib/european/project.rb
79
80
  - lib/european/source_system.rb
80
81
  - lib/european/version.rb
82
+ - spec/data/configs/build.rb
83
+ - spec/data/configs/build_system-with-block.rb
84
+ - spec/data/configs/build_system.rb
85
+ - spec/data/configs/deploy.rb
86
+ - spec/data/configs/deploy_system-with-block.rb
87
+ - spec/data/configs/deploy_system.rb
81
88
  - spec/data/configs/jedcn.rb
89
+ - spec/data/configs/project-with-block.rb
90
+ - spec/data/configs/project.rb
91
+ - spec/data/configs/project_defaults.rb
92
+ - spec/data/configs/source_system-with-block.rb
93
+ - spec/data/configs/source_system.rb
94
+ - spec/data/configs/typical-example.rb
95
+ - spec/dsl/build_spec.rb
96
+ - spec/dsl/build_system_spec.rb
97
+ - spec/dsl/deploy_spec.rb
98
+ - spec/dsl/deploy_system_spec.rb
99
+ - spec/dsl/project_defaults_spec.rb
100
+ - spec/dsl/project_spec.rb
101
+ - spec/dsl/source_system_spec.rb
102
+ - spec/dsl/typical_example_spec.rb
82
103
  - spec/lib/european/carry_all_spec.rb
104
+ - spec/lib/european/name_interpreter_spec.rb
83
105
  - spec/lib/european/named_carry_all_item_spec.rb
84
106
  - spec/lib/european/project_spec.rb
85
107
  - spec/spec_helper.rb
@@ -108,8 +130,29 @@ signing_key:
108
130
  specification_version: 4
109
131
  summary: A lightweight DSL for describing a project portfolio
110
132
  test_files:
133
+ - spec/data/configs/build.rb
134
+ - spec/data/configs/build_system-with-block.rb
135
+ - spec/data/configs/build_system.rb
136
+ - spec/data/configs/deploy.rb
137
+ - spec/data/configs/deploy_system-with-block.rb
138
+ - spec/data/configs/deploy_system.rb
111
139
  - spec/data/configs/jedcn.rb
140
+ - spec/data/configs/project-with-block.rb
141
+ - spec/data/configs/project.rb
142
+ - spec/data/configs/project_defaults.rb
143
+ - spec/data/configs/source_system-with-block.rb
144
+ - spec/data/configs/source_system.rb
145
+ - spec/data/configs/typical-example.rb
146
+ - spec/dsl/build_spec.rb
147
+ - spec/dsl/build_system_spec.rb
148
+ - spec/dsl/deploy_spec.rb
149
+ - spec/dsl/deploy_system_spec.rb
150
+ - spec/dsl/project_defaults_spec.rb
151
+ - spec/dsl/project_spec.rb
152
+ - spec/dsl/source_system_spec.rb
153
+ - spec/dsl/typical_example_spec.rb
112
154
  - spec/lib/european/carry_all_spec.rb
155
+ - spec/lib/european/name_interpreter_spec.rb
113
156
  - spec/lib/european/named_carry_all_item_spec.rb
114
157
  - spec/lib/european/project_spec.rb
115
158
  - spec/spec_helper.rb