step-up 0.1.0 → 0.2.0
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.
- data/.stepuprc +31 -0
- data/README.md +31 -2
- data/Rakefile +1 -1
- data/lib/step-up.rb +1 -0
- data/lib/step-up/cli.rb +253 -8
- data/lib/step-up/config.rb +67 -2
- data/lib/step-up/config/step-up.yml +17 -5
- data/lib/step-up/driver/git.rb +65 -38
- data/lib/step-up/git_extensions.rb +32 -82
- data/lib/step-up/parser/version_mask.rb +18 -9
- data/lib/step-up/ranged_notes.rb +166 -0
- data/lib/step-up/version.rb +4 -26
- data/spec/lib/config_spec.rb +46 -0
- data/spec/lib/step-up/driver/git_spec.rb +82 -74
- data/spec/lib/step-up/parser/version_mask_spec.rb +27 -3
- data/spec/lib/step-up/ranged_notes_spec.rb +140 -0
- metadata +10 -4
data/lib/step-up/version.rb
CHANGED
@@ -1,28 +1,6 @@
|
|
1
1
|
module StepUp
|
2
|
-
|
3
|
-
|
4
|
-
if
|
5
|
-
|
6
|
-
end
|
7
|
-
if v.nil?
|
8
|
-
$:.each do |path|
|
9
|
-
if path =~ /\/step-up-([\w\.\-]+)/
|
10
|
-
v = $1
|
11
|
-
break
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
if v.nil?
|
16
|
-
path = File.expand_path('../../../.git', __FILE__)
|
17
|
-
if File.exists?(path)
|
18
|
-
v = Driver::Git.last_version
|
19
|
-
end
|
20
|
-
end
|
21
|
-
if v.nil?
|
22
|
-
VERSION = "0.0.0"
|
23
|
-
else
|
24
|
-
v.sub!(/^v/, '')
|
25
|
-
v.sub!(/\+$/, '')
|
26
|
-
VERSION = v
|
27
|
-
end
|
2
|
+
version = nil
|
3
|
+
version = $1 if ::File.expand_path('../..', __FILE__) =~ /\/step-up-([\w\.\-]+)/
|
4
|
+
version = Driver::Git.new.last_version_tag if version.nil? && ::File.exists?(::File.expand_path('../../../.git', __FILE__))
|
5
|
+
VERSION = version.gsub(/^v?([^\+]+)\+?\d*$/, '\1')
|
28
6
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe StepUp::CONFIG do
|
4
|
+
before do
|
5
|
+
@c = StepUp::CONFIG
|
6
|
+
end
|
7
|
+
|
8
|
+
context "getting an attribute" do
|
9
|
+
it "that does not exists" do
|
10
|
+
lambda { @c.notes2 }.should raise_error(NoMethodError)
|
11
|
+
end
|
12
|
+
it "that exists" do
|
13
|
+
@c.should_not respond_to(:notes)
|
14
|
+
@c.notes.should be_kind_of(Hash)
|
15
|
+
@c.notes.should be_kind_of(StepUp::ConfigExt)
|
16
|
+
@c.notes.should_not respond_to(:sections)
|
17
|
+
@c.notes.sections.should be_kind_of(Array)
|
18
|
+
@c.notes.should_not respond_to(:after_versioned)
|
19
|
+
@c.notes.after_versioned.should be_kind_of(Hash)
|
20
|
+
@c.notes.after_versioned.should be_kind_of(StepUp::ConfigExt)
|
21
|
+
@c.notes.after_versioned.should_not respond_to(:section)
|
22
|
+
@c.notes.after_versioned.section.should be_kind_of(String)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
context "getting notes sections" do
|
28
|
+
it "by names" do
|
29
|
+
@c.notes_sections.should be_kind_of(Array)
|
30
|
+
@c.notes_sections.should respond_to(:names)
|
31
|
+
@c.notes_sections.names.should be == %w[changes bugfixes features deploy_steps]
|
32
|
+
end
|
33
|
+
|
34
|
+
it "by prefixes" do
|
35
|
+
@c.notes_sections.should be_kind_of(Array)
|
36
|
+
@c.notes_sections.should respond_to(:prefixes)
|
37
|
+
@c.notes_sections.prefixes.should be == ["change: ", "bugfix: ", "feature: ", "deploy_step: "]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "by labels" do
|
41
|
+
@c.notes_sections.should be_kind_of(Array)
|
42
|
+
@c.notes_sections.should respond_to(:labels)
|
43
|
+
@c.notes_sections.labels.should be == ["Changes:", "Bugfixes:", "Features:", "Deploy steps:"]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'time'
|
2
3
|
|
3
4
|
describe StepUp::Driver::Git do
|
4
5
|
before do
|
@@ -12,94 +13,101 @@ describe StepUp::Driver::Git do
|
|
12
13
|
@driver.commit_history("f4cfcc2").should be == ["f4cfcc2c8b1f7edb1b7817b4e8a9063d21db089b", "2fb8a3281fb6777405aadcd699adb852b615a3e4", "d7b0fa26ca547b963569d7a82afd7d7ca11b71ae", "8b38f7c842496fd50b4e1b7ca5e883940b9cbf83", "f76c8d7bf64678963aeef84009be54f1819e3389", "8299243c7dac8f27c3572424a348a7f83ef0ce28", "570fe2e6e7f0b06140ae109e50a1e86628819493", "cdd4d5aa885b22136f4a08c1b35076f888f9536e", "72174c160b50ec73a8f67c8150e0dcd976857411", "b2da007b4fb35e0274858c14a83a836852d055a4", "4f0e7e0f6b3df2d49ed0029ed01998bf2102b28f"]
|
13
14
|
@driver.commit_history("f4cfcc2", 3).should be == ["f4cfcc2c8b1f7edb1b7817b4e8a9063d21db089b", "2fb8a3281fb6777405aadcd699adb852b615a3e4", "d7b0fa26ca547b963569d7a82afd7d7ca11b71ae"]
|
14
15
|
end
|
16
|
+
it "should get commits between a fist commit and a last_commit" do
|
17
|
+
@driver.should respond_to :commits_between
|
18
|
+
@driver.commits_between("63c8b23", "d133b9e").should be == %w[
|
19
|
+
d133b9e3b5be37c8a3332a83e55b410e87d9c3a3
|
20
|
+
abd9ee53283de0981fd6fd659af50a2aef4fc5c6
|
21
|
+
13de54b5cfdaf05fd4e3c3db57ec9f021362d9c7
|
22
|
+
67931ecf42431719b5c67f88ec65cb57e7e11744
|
23
|
+
]
|
24
|
+
@driver.commits_between("67931ec", "d133b9e").size.should be == 6
|
25
|
+
end
|
26
|
+
it "should get all remotes" do
|
27
|
+
@driver.fetched_remotes.should be == %w[origin]
|
28
|
+
end
|
29
|
+
it "should get version tag info" do
|
30
|
+
@driver.version_tag_info("v0.1.0").should be == {:message => "Features:\n\n - command line to show notes for the next version (unversioned notes)", :tagger => "Marcelo Manzan", :date => Time.parse("Thu Dec 9 02:42:14 2010 -0200")}
|
31
|
+
end
|
15
32
|
end
|
16
|
-
|
17
|
-
|
18
|
-
context 'fetching tags' do
|
33
|
+
|
34
|
+
context 'fetching all tags' do
|
19
35
|
it "should get tags sorted" do
|
20
|
-
tags = %w[note-v0.2.0-1 v0.1.0 v0.1.1 v0.1.2 v0.1.1.rc3]
|
36
|
+
tags = %w[note-v0.2.0-1 v0.1.0 v0.1.1 v0.1.10 v0.1.2 v0.1.1.rc3]
|
21
37
|
@driver.stubs(:all_tags).returns(tags)
|
22
|
-
@driver.all_version_tags.should be == %w[v0.1.2 v0.1.1.rc3 v0.1.1 v0.1.0]
|
38
|
+
@driver.all_version_tags.should be == %w[v0.1.10 v0.1.2 v0.1.1.rc3 v0.1.1 v0.1.0]
|
23
39
|
end
|
24
|
-
|
40
|
+
end
|
41
|
+
|
42
|
+
context "fetching the last version tag" do
|
25
43
|
it "should return last tag visible" do
|
26
44
|
@driver.last_version_tag("f4cfcc2").should be == "v0.0.1+"
|
27
45
|
@driver.last_version_tag("570fe2e").should be == "v0.0.1"
|
28
|
-
@driver.class.last_version("f4cfcc2").should be == "v0.0.1+"
|
29
|
-
@driver.class.last_version("570fe2e").should be == "v0.0.1"
|
30
46
|
end
|
31
|
-
|
32
|
-
it "should get
|
33
|
-
@driver.last_version_tag("
|
47
|
+
|
48
|
+
it "should get last tag visible with the count of commits after it" do
|
49
|
+
@driver.last_version_tag("f42bdd1", true).should be == "v0.0.2+22"
|
50
|
+
@driver.last_version_tag("13de54b", true).should be == "v0.0.2+22"
|
51
|
+
@driver.last_version_tag("d133b9e", true).should be == "v0.0.2+27"
|
34
52
|
end
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
53
|
+
|
54
|
+
context "if there is no version tag" do
|
55
|
+
context "in the project" do
|
56
|
+
before do
|
57
|
+
@driver.stubs(:all_version_tags).returns([])
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should return a blank tag" do
|
61
|
+
@driver.last_version_tag.should == "v0.0.0+"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "in the commit history, but there is in the project" do
|
66
|
+
it "should return nil" do
|
67
|
+
@driver.last_version_tag("cdd4d5a").should be_nil
|
68
|
+
end
|
69
|
+
end
|
39
70
|
end
|
40
71
|
end
|
41
72
|
|
42
73
|
|
43
|
-
context "
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
Test bugfixes:
|
57
|
-
|
58
|
-
- sorting tags according to the mask parser (d7b0fa26ca547b963569d7a82afd7d7ca11b71ae)
|
59
|
-
MSG
|
60
|
-
@changelog = @changelog_full.gsub(/\s\(\w+\)$/, '')
|
61
|
-
@all_objects_with_notes = @driver.all_objects_with_notes("f4cfcc2")
|
62
|
-
end
|
63
|
-
it "should get all objects with notes" do
|
64
|
-
@all_objects_with_notes.should be == @objects_with_notes
|
65
|
-
end
|
66
|
-
it "should get all notes messages" do
|
67
|
-
@all_objects_with_notes.should respond_to(:messages)
|
68
|
-
@all_objects_with_notes.messages.should be == @messages
|
69
|
-
end
|
70
|
-
it "should get changelog message" do
|
71
|
-
@all_objects_with_notes.should respond_to(:to_changelog)
|
72
|
-
@all_objects_with_notes.sections.should be == @driver.notes_sections
|
73
|
-
@all_objects_with_notes.messages.should be == @messages
|
74
|
-
@all_objects_with_notes.messages.to_changelog.should be == @changelog
|
75
|
-
@all_objects_with_notes.to_changelog.should be == @changelog
|
76
|
-
@all_objects_with_notes.messages.to_changelog(:mode => :with_objects).should be == @changelog_full
|
77
|
-
@all_objects_with_notes.to_changelog(:mode => :with_objects).should be == @changelog_full
|
78
|
-
end
|
79
|
-
it "should get unversioned changelog message" do
|
80
|
-
@all_objects_with_notes.should be == @objects_with_notes
|
81
|
-
object = @objects_with_notes["test_changes"].shift
|
82
|
-
@all_objects_with_notes.stubs(:kept_notes).returns([object])
|
83
|
-
@all_objects_with_notes.should respond_to(:unversioned_only)
|
84
|
-
@all_objects_with_notes.unversioned_only.should be == @objects_with_notes
|
85
|
-
end
|
74
|
+
context "adding notes" do
|
75
|
+
before do
|
76
|
+
@steps = <<-STEPS
|
77
|
+
git fetch
|
78
|
+
|
79
|
+
git notes --ref=jjj_changes add -m "alteracao na variavel de ambiente \\"\\$ENV\\"" v0.1.0~1
|
80
|
+
|
81
|
+
git push origin refs/notes/jjj_changes
|
82
|
+
STEPS
|
83
|
+
@steps = @steps.rstrip.split(/\n\n/).collect{ |step| step.gsub(/^\s{6}/, '') }
|
84
|
+
end
|
85
|
+
it "should return steps" do
|
86
|
+
@driver.steps_for_add_notes("jjj_changes", "alteracao na variavel de ambiente \"$ENV\"", "v0.1.0~1").should be == @steps
|
86
87
|
end
|
87
88
|
end
|
88
89
|
|
89
90
|
|
90
91
|
context "increasing version" do
|
91
92
|
before do
|
92
|
-
|
93
|
+
notes_sections = %w[test_changes test_bugfixes test_features]
|
94
|
+
class << notes_sections
|
95
|
+
include StepUp::ConfigSectionsExt
|
96
|
+
end
|
97
|
+
StepUp::CONFIG.stubs(:notes_sections).returns(notes_sections)
|
98
|
+
StepUp::CONFIG.notes.after_versioned.stubs(:section).returns("test_versioning")
|
93
99
|
end
|
94
100
|
|
95
101
|
|
96
102
|
context "using 'remove' as after_versioned:strategy" do
|
97
103
|
before do
|
98
|
-
|
104
|
+
StepUp::CONFIG.notes.after_versioned.stubs(:strategy).returns("remove")
|
99
105
|
@steps = <<-STEPS
|
100
106
|
git fetch
|
101
107
|
|
102
|
-
git tag -a -m "
|
108
|
+
git tag -a -m "Test changes:
|
109
|
+
|
110
|
+
- removing files from gemspec
|
103
111
|
- .gitignore
|
104
112
|
- lastversion.gemspec
|
105
113
|
- loading default configuration yaml
|
@@ -107,8 +115,7 @@ MSG
|
|
107
115
|
|
108
116
|
Test bugfixes:
|
109
117
|
|
110
|
-
- sorting tags according to the mask parser
|
111
|
-
" v0.1.0
|
118
|
+
- sorting tags according to the mask parser" v0.1.0
|
112
119
|
|
113
120
|
git push --tags
|
114
121
|
|
@@ -122,22 +129,24 @@ MSG
|
|
122
129
|
|
123
130
|
git push origin refs/notes/test_bugfixes
|
124
131
|
STEPS
|
125
|
-
@steps = @steps.
|
132
|
+
@steps = @steps.rstrip.split(/\n\n/).collect{ |step| step.gsub(/^\s{8}/, '') }
|
126
133
|
end
|
127
134
|
it "should return steps" do
|
128
|
-
@driver.should respond_to :
|
129
|
-
@driver.
|
135
|
+
@driver.should respond_to :steps_to_increase_version
|
136
|
+
@driver.steps_to_increase_version("minor", "f4cfcc2").should be == @steps
|
130
137
|
end
|
131
138
|
end
|
132
139
|
|
133
140
|
|
134
141
|
context "using 'keep' as after_versioned:strategy" do
|
135
142
|
before do
|
136
|
-
|
143
|
+
StepUp::CONFIG.notes.after_versioned.stubs(:strategy).returns("keep")
|
137
144
|
@steps = <<-STEPS
|
138
145
|
git fetch
|
139
146
|
|
140
|
-
git tag -a -m "
|
147
|
+
git tag -a -m "Test changes:
|
148
|
+
|
149
|
+
- removing files from gemspec
|
141
150
|
- .gitignore
|
142
151
|
- lastversion.gemspec
|
143
152
|
- loading default configuration yaml
|
@@ -145,8 +154,7 @@ MSG
|
|
145
154
|
|
146
155
|
Test bugfixes:
|
147
156
|
|
148
|
-
- sorting tags according to the mask parser
|
149
|
-
" v0.1.0
|
157
|
+
- sorting tags according to the mask parser" v0.1.0
|
150
158
|
|
151
159
|
git push --tags
|
152
160
|
|
@@ -158,11 +166,11 @@ MSG
|
|
158
166
|
|
159
167
|
git push origin refs/notes/test_versioning
|
160
168
|
STEPS
|
161
|
-
@steps = @steps.
|
169
|
+
@steps = @steps.rstrip.split(/\n\n/).collect{ |step| step.gsub(/^\s{8}/, '') }
|
162
170
|
end
|
163
171
|
it "should return steps" do
|
164
|
-
@driver.should respond_to :
|
165
|
-
@driver.
|
172
|
+
@driver.should respond_to :steps_to_increase_version
|
173
|
+
@driver.steps_to_increase_version("minor", "f4cfcc2").should be == @steps
|
166
174
|
end
|
167
175
|
end
|
168
176
|
end
|
@@ -170,7 +178,7 @@ MSG
|
|
170
178
|
|
171
179
|
context "checking helper methods" do
|
172
180
|
it "should load default notes' sections" do
|
173
|
-
|
181
|
+
StepUp::CONFIG.notes_sections.should be == StepUp::CONFIG["notes"]["sections"]
|
174
182
|
end
|
175
183
|
end
|
176
184
|
end
|
@@ -6,7 +6,10 @@ describe StepUp::Parser::VersionMask do
|
|
6
6
|
@mask = StepUp::Parser::VersionMask.new("v0.0.0.9.9.rc9")
|
7
7
|
}.should_not raise_error ArgumentError
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
|
+
it "should be able to provide a blank mask" do
|
11
|
+
@mask.blank.should be == "v0.0.0"
|
12
|
+
end
|
10
13
|
|
11
14
|
context "parsing" do
|
12
15
|
it "should parse" do
|
@@ -36,9 +39,9 @@ describe StepUp::Parser::VersionMask do
|
|
36
39
|
|
37
40
|
context "increasing version" do
|
38
41
|
before do
|
39
|
-
@mask.stubs(:
|
42
|
+
@mask.stubs(:version_levels).returns(%w[major minor tiny patch build rc])
|
40
43
|
end
|
41
|
-
it "should increase by
|
44
|
+
it "should increase by levels" do
|
42
45
|
version = "v2.3.1.6.4.rc5"
|
43
46
|
@mask.increase_version(version, "major").should be == "v3.0.0"
|
44
47
|
@mask.increase_version(version, "minor").should be == "v2.4.0"
|
@@ -48,4 +51,25 @@ describe StepUp::Parser::VersionMask do
|
|
48
51
|
@mask.increase_version(version, "rc").should be == "v2.3.1.6.4.rc6"
|
49
52
|
end
|
50
53
|
end
|
54
|
+
|
55
|
+
|
56
|
+
context "getting Regepx" do
|
57
|
+
it "should get regexp string" do
|
58
|
+
@mask.should respond_to(:to_regex)
|
59
|
+
@mask.to_regex.should be == "(?:v(\\d+))(?:\\.(\\d+))(?:\\.(\\d+))(?:\\.(\\d+))?(?:\\.(\\d+))?(?:\\.rc(\\d+))?"
|
60
|
+
end
|
61
|
+
it "should parse message" do
|
62
|
+
re = /^available on (?:#{ @mask.to_regex })$/
|
63
|
+
"available on v0.1.0".should =~ re
|
64
|
+
"available on v0.1.0.rc3".should =~ re
|
65
|
+
"available on v0.1.0.1.rc3".should =~ re
|
66
|
+
"available on v0.1.0.2.4.rc3".should =~ re
|
67
|
+
end
|
68
|
+
it "should not parse message" do
|
69
|
+
re = /^available on (?:#{ @mask.to_regex })$/
|
70
|
+
"available on v0.1".should_not =~ re
|
71
|
+
"now in v0.1.0".should_not =~ re
|
72
|
+
"available on v0.1.0 tag".should_not =~ re
|
73
|
+
end
|
74
|
+
end
|
51
75
|
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe StepUp::RangedNotes do
|
4
|
+
before do
|
5
|
+
@driver = StepUp::Driver::Git.new
|
6
|
+
end
|
7
|
+
|
8
|
+
context "checking notes" do
|
9
|
+
it "should bring all notes between v0.0.2 and v0.1.0" do
|
10
|
+
@notes = StepUp::RangedNotes.new(@driver, "v0.0.2", "v0.1.0")
|
11
|
+
@notes.all_notes.should be == [
|
12
|
+
[3, "features", 1, "3baad37d5098ad3b09935229e14e617c3ec8b7ee",
|
13
|
+
"command line to show notes for the next version (unversioned notes)\n"]
|
14
|
+
]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context "testing notes" do
|
19
|
+
before do
|
20
|
+
notes_sections = %w[test_changes test_bugfixes test_features]
|
21
|
+
class << notes_sections
|
22
|
+
include StepUp::ConfigSectionsExt
|
23
|
+
end
|
24
|
+
StepUp::CONFIG.stubs(:notes_sections).returns(notes_sections)
|
25
|
+
StepUp::CONFIG.notes.after_versioned.stubs(:section).returns("test_versioning")
|
26
|
+
end
|
27
|
+
context "until object f4cfcc2" do
|
28
|
+
before do
|
29
|
+
@notes = StepUp::RangedNotes.new(@driver, nil, "f4cfcc2")
|
30
|
+
end
|
31
|
+
it "should get all detached notes" do
|
32
|
+
@notes.notes.should be == [
|
33
|
+
[5, "test_changes", 1, "8299243c7dac8f27c3572424a348a7f83ef0ce28",
|
34
|
+
"removing files from gemspec\n .gitignore\n lastversion.gemspec\n"],
|
35
|
+
[2, "test_bugfixes", 1, "d7b0fa26ca547b963569d7a82afd7d7ca11b71ae",
|
36
|
+
"sorting tags according to the mask parser\n"],
|
37
|
+
[1, "test_changes", 1, "2fb8a3281fb6777405aadcd699adb852b615a3e4",
|
38
|
+
"loading default configuration yaml\n\nloading external configuration yaml\n"]
|
39
|
+
]
|
40
|
+
end
|
41
|
+
it "should get a hash of distinct notes" do
|
42
|
+
@notes.notes.should respond_to :as_hash
|
43
|
+
@notes.notes.as_hash.should be == {
|
44
|
+
"test_changes" => [
|
45
|
+
["8299243c7dac8f27c3572424a348a7f83ef0ce28",
|
46
|
+
"removing files from gemspec\n .gitignore\n lastversion.gemspec\n", 1],
|
47
|
+
["2fb8a3281fb6777405aadcd699adb852b615a3e4",
|
48
|
+
"loading default configuration yaml\n\nloading external configuration yaml\n", 1]
|
49
|
+
],
|
50
|
+
"test_bugfixes" => [
|
51
|
+
["d7b0fa26ca547b963569d7a82afd7d7ca11b71ae",
|
52
|
+
"sorting tags according to the mask parser\n", 1]
|
53
|
+
]
|
54
|
+
}
|
55
|
+
end
|
56
|
+
it "should get the changelog message without objects" do
|
57
|
+
@notes.notes.as_hash.should respond_to :to_changelog
|
58
|
+
changelog = <<-EOF
|
59
|
+
Test changes:
|
60
|
+
|
61
|
+
- removing files from gemspec
|
62
|
+
- .gitignore
|
63
|
+
- lastversion.gemspec
|
64
|
+
- loading default configuration yaml
|
65
|
+
- loading external configuration yaml
|
66
|
+
|
67
|
+
Test bugfixes:
|
68
|
+
|
69
|
+
- sorting tags according to the mask parser
|
70
|
+
EOF
|
71
|
+
changelog.gsub!(/^\s{8}/, '')
|
72
|
+
changelog = changelog.rstrip
|
73
|
+
@notes.notes.as_hash.to_changelog.should be == changelog
|
74
|
+
end
|
75
|
+
it "should get the changelog message with objects" do
|
76
|
+
@notes.notes.as_hash.should respond_to :to_changelog
|
77
|
+
changelog = <<-EOF
|
78
|
+
Test changes:
|
79
|
+
|
80
|
+
- removing files from gemspec (8299243c7dac8f27c3572424a348a7f83ef0ce28)
|
81
|
+
- .gitignore
|
82
|
+
- lastversion.gemspec
|
83
|
+
- loading default configuration yaml (2fb8a3281fb6777405aadcd699adb852b615a3e4)
|
84
|
+
- loading external configuration yaml
|
85
|
+
|
86
|
+
Test bugfixes:
|
87
|
+
|
88
|
+
- sorting tags according to the mask parser (d7b0fa26ca547b963569d7a82afd7d7ca11b71ae)
|
89
|
+
EOF
|
90
|
+
changelog.gsub!(/^\s{8}/, '')
|
91
|
+
changelog = changelog.rstrip
|
92
|
+
@notes.notes.as_hash.to_changelog(:mode => :with_objects).should be == changelog
|
93
|
+
end
|
94
|
+
it "should get the changelog message with custom message" do
|
95
|
+
@notes.notes.as_hash.should respond_to :to_changelog
|
96
|
+
changelog = <<-EOF
|
97
|
+
Custom message:
|
98
|
+
|
99
|
+
- New version create feature
|
100
|
+
- Removed old version create feature
|
101
|
+
|
102
|
+
Test changes:
|
103
|
+
|
104
|
+
- removing files from gemspec
|
105
|
+
- .gitignore
|
106
|
+
- lastversion.gemspec
|
107
|
+
- loading default configuration yaml
|
108
|
+
- loading external configuration yaml
|
109
|
+
|
110
|
+
Test bugfixes:
|
111
|
+
|
112
|
+
- sorting tags according to the mask parser
|
113
|
+
EOF
|
114
|
+
changelog.gsub!(/^\s{8}/, '')
|
115
|
+
changelog = changelog.rstrip
|
116
|
+
message_option = {:custom_message => "New version create feature\n\nRemoved old version create feature"}
|
117
|
+
@notes.notes.as_hash.to_changelog(message_option).should be == changelog
|
118
|
+
end
|
119
|
+
it "should get the changelog message without custom message" do
|
120
|
+
@notes.notes.as_hash.should respond_to :to_changelog
|
121
|
+
changelog = <<-EOF
|
122
|
+
Test changes:
|
123
|
+
|
124
|
+
- removing files from gemspec
|
125
|
+
- .gitignore
|
126
|
+
- lastversion.gemspec
|
127
|
+
- loading default configuration yaml
|
128
|
+
- loading external configuration yaml
|
129
|
+
|
130
|
+
Test bugfixes:
|
131
|
+
|
132
|
+
- sorting tags according to the mask parser
|
133
|
+
EOF
|
134
|
+
changelog.gsub!(/^\s{8}/, '')
|
135
|
+
changelog = changelog.rstrip
|
136
|
+
@notes.notes.as_hash.to_changelog.should be == changelog
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|