go_figure 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/go_figure.gemspec +1 -1
- data/lib/go-pipelines.xml.erb +17 -0
- data/lib/go_figure/go_config.rb +12 -2
- data/lib/go_figure/version.rb +1 -1
- data/test/go_figure/go_config_test.rb +52 -1
- data/test/test_helper.rb +5 -0
- metadata +15 -10
data/.gitignore
CHANGED
data/go_figure.gemspec
CHANGED
data/lib/go-pipelines.xml.erb
CHANGED
@@ -7,6 +7,12 @@
|
|
7
7
|
<jobs>
|
8
8
|
<job name="Test">
|
9
9
|
<tasks>
|
10
|
+
<exec command="/bin/ln">
|
11
|
+
<arg>-sf</arg>
|
12
|
+
<arg>/etc/go_saas/database.yml</arg>
|
13
|
+
<arg>config/database.yml</arg>
|
14
|
+
<runif status="passed" />
|
15
|
+
</exec>
|
10
16
|
<exec command="bundle">
|
11
17
|
<arg>install</arg>
|
12
18
|
<arg>--local</arg>
|
@@ -21,11 +27,22 @@
|
|
21
27
|
<arg>db:migrate</arg>
|
22
28
|
<runif status="passed" />
|
23
29
|
</exec>
|
30
|
+
<% if @params[:test_unit] %>
|
31
|
+
<exec command="bundle">
|
32
|
+
<arg>exec</arg>
|
33
|
+
<arg>rake</arg>
|
34
|
+
<arg>test</arg>
|
35
|
+
<runif status="passed" />
|
36
|
+
</exec>
|
37
|
+
<%end%>
|
38
|
+
<% if @params[:rspec] %>
|
24
39
|
<exec command="bundle">
|
25
40
|
<arg>exec</arg>
|
26
41
|
<arg>rake</arg>
|
42
|
+
<arg>spec</arg>
|
27
43
|
<runif status="passed" />
|
28
44
|
</exec>
|
45
|
+
<%end%>
|
29
46
|
</tasks>
|
30
47
|
</job>
|
31
48
|
</jobs>
|
data/lib/go_figure/go_config.rb
CHANGED
@@ -10,6 +10,7 @@ module GoFigure
|
|
10
10
|
@original_md5 = options[:md5]
|
11
11
|
@original_xml = options[:xml]
|
12
12
|
@doc = Nokogiri.XML(@original_xml, nil, 'utf-8')
|
13
|
+
@params = {}
|
13
14
|
end
|
14
15
|
|
15
16
|
def set_pipeline(git_url, working_dir)
|
@@ -36,17 +37,26 @@ module GoFigure
|
|
36
37
|
|
37
38
|
def pipeline_template(git_url, working_dir)
|
38
39
|
template = ERB.new(File.read(File.expand_path('../../go-pipelines.xml.erb', __FILE__)))
|
39
|
-
template.result(PipelineConfig.new(git_url, working_dir).get_binding)
|
40
|
+
template.result(PipelineConfig.new(git_url, working_dir, @params).get_binding)
|
40
41
|
end
|
41
42
|
|
42
43
|
def xml_content
|
43
44
|
@doc.to_s
|
44
45
|
end
|
45
46
|
|
47
|
+
def set_rspec
|
48
|
+
@params[:rspec] = true
|
49
|
+
end
|
50
|
+
|
51
|
+
def set_test_unit
|
52
|
+
@params[:test_unit] = true
|
53
|
+
end
|
54
|
+
|
46
55
|
class PipelineConfig
|
47
|
-
def initialize(git_url, working_dir)
|
56
|
+
def initialize(git_url, working_dir, params)
|
48
57
|
@git_url = git_url
|
49
58
|
@working_dir = working_dir
|
59
|
+
@params = params
|
50
60
|
end
|
51
61
|
|
52
62
|
def get_binding
|
data/lib/go_figure/version.rb
CHANGED
@@ -43,12 +43,63 @@ module GoFigure
|
|
43
43
|
}
|
44
44
|
end
|
45
45
|
|
46
|
+
def test_should_set_the_rspec_pipeline_if_configured
|
47
|
+
xml = %Q{<?xml version="1.0" encoding="utf-8"?>
|
48
|
+
<cruise />
|
49
|
+
}
|
50
|
+
|
51
|
+
config = GoConfig.new(:xml => xml)
|
52
|
+
config.set_rspec
|
53
|
+
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
54
|
+
assert config.xml_content =~ /<arg>rake<\/arg>.\s*<arg>spec<\/arg>/m
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_should_not_set_the_rspec_pipeline_if_not_configured
|
58
|
+
xml = %Q{<?xml version="1.0" encoding="utf-8"?>
|
59
|
+
<cruise />
|
60
|
+
}
|
61
|
+
|
62
|
+
config = GoConfig.new(:xml => xml)
|
63
|
+
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
64
|
+
assert config.xml_content !~ /<arg>rake<\/arg>.\s*<arg>spec<\/arg>/m
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_should_set_the_test_unit_pipeline_if_configured
|
68
|
+
xml = %Q{<?xml version="1.0" encoding="utf-8"?>
|
69
|
+
<cruise />
|
70
|
+
}
|
71
|
+
|
72
|
+
config = GoConfig.new(:xml => xml)
|
73
|
+
config.set_test_unit
|
74
|
+
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
75
|
+
assert config.xml_content =~ /<arg>rake<\/arg>.\s*<arg>test<\/arg>/m
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_should_not_set_the_test_unit_pipeline_if_not_configured
|
79
|
+
xml = %Q{<?xml version="1.0" encoding="utf-8"?>
|
80
|
+
<cruise />
|
81
|
+
}
|
82
|
+
|
83
|
+
config = GoConfig.new(:xml => xml)
|
84
|
+
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
85
|
+
assert config.xml_content !~ /<arg>rake<\/arg>.\s*<arg>test<\/arg>/m
|
86
|
+
end
|
87
|
+
|
88
|
+
def test_should_link_the_db_yml_to_a_controlled_db_yml
|
89
|
+
xml = %Q{<?xml version="1.0" encoding="utf-8"?>
|
90
|
+
<cruise />
|
91
|
+
}
|
92
|
+
|
93
|
+
config = GoConfig.new(:xml => xml)
|
94
|
+
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
95
|
+
assert config.xml_content =~ /<exec command="\/bin\/ln">.\s*<arg>-sf<\/arg>.\s*<arg>\/etc\/go_saas\/database.yml<\/arg>.\s*<arg>config\/database.yml<\/arg>/m
|
96
|
+
end
|
46
97
|
|
47
98
|
def assert_pipeline_template(xml)
|
48
99
|
config = GoConfig.new(:xml => xml)
|
49
100
|
config.set_pipeline('http://git.example.com/my_project/atlas.git', 'atlas_rails')
|
50
101
|
assert config.xml_content =~ %r{<pipelines group="defaultGroup">}
|
51
|
-
assert config.xml_content =~ %r{<git url="http://git.example.com/my_project/atlas.git"/>}
|
102
|
+
assert config.xml_content =~ %r{<git autoUpdate="false" url="http://git.example.com/my_project/atlas.git"/>}
|
52
103
|
end
|
53
104
|
|
54
105
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: go_figure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,24 +11,30 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2012-04-
|
14
|
+
date: 2012-04-20 00:00:00.000000000Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
|
-
name:
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
+
name: simplecov
|
18
|
+
requirement: &70324008555740 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
|
-
- -
|
21
|
+
- - ! '>='
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
24
|
-
type: :
|
23
|
+
version: '0'
|
24
|
+
type: :development
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
26
|
+
version_requirements: *70324008555740
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogiri
|
29
|
+
requirement: &70324008555240 !ruby/object:Gem::Requirement
|
27
30
|
none: false
|
28
31
|
requirements:
|
29
32
|
- - ~>
|
30
33
|
- !ruby/object:Gem::Version
|
31
34
|
version: 1.5.0
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: *70324008555240
|
32
38
|
description: This provides a ruby DSL to create a configuration file for the go server
|
33
39
|
(thoughtworks-studios.com/go)
|
34
40
|
email:
|
@@ -76,7 +82,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
82
|
version: '0'
|
77
83
|
requirements: []
|
78
84
|
rubyforge_project: go_figure
|
79
|
-
rubygems_version: 1.8.
|
85
|
+
rubygems_version: 1.8.15
|
80
86
|
signing_key:
|
81
87
|
specification_version: 3
|
82
88
|
summary: A Ruby DSL to write a configuration file for the a go server.
|
@@ -85,4 +91,3 @@ test_files:
|
|
85
91
|
- test/go_figure/go_config_endpoint_test.rb
|
86
92
|
- test/go_figure/go_config_test.rb
|
87
93
|
- test/test_helper.rb
|
88
|
-
has_rdoc:
|