twig 1.3 → 1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -191,13 +191,13 @@ describe Twig::Cli do
191
191
  end
192
192
 
193
193
  it 'recognizes `--only-<property>` and sets a `:property_only` option' do
194
- Twig::Branch.stub(:all_properties) { %w[foo] }
194
+ Twig::Branch.stub(:all_property_names) { %w[foo] }
195
195
  @twig.read_cli_options!(%w[--only-foo test])
196
196
  @twig.options[:property_only].should == { :foo => /test/ }
197
197
  end
198
198
 
199
199
  it 'recognizes `--only-branch` and `--only-<property>` together' do
200
- Twig::Branch.stub(:all_properties) { %w[foo] }
200
+ Twig::Branch.stub(:all_property_names) { %w[foo] }
201
201
 
202
202
  @twig.read_cli_options!(%w[--only-branch test --only-foo bar])
203
203
 
@@ -209,7 +209,7 @@ describe Twig::Cli do
209
209
 
210
210
  it 'does not recognize `--only-<property>` for a missing property' do
211
211
  property_name = 'foo'
212
- Twig::Branch.all_properties.should_not include(property_name) # Precondition
212
+ Twig::Branch.all_property_names.should_not include(property_name) # Precondition
213
213
  @twig.stub(:puts)
214
214
 
215
215
  begin
@@ -230,13 +230,13 @@ describe Twig::Cli do
230
230
  end
231
231
 
232
232
  it 'recognizes `--except-<property>` and sets a `:property_except` option' do
233
- Twig::Branch.stub(:all_properties) { %w[foo] }
233
+ Twig::Branch.stub(:all_property_names) { %w[foo] }
234
234
  @twig.read_cli_options!(%w[--except-foo test])
235
235
  @twig.options[:property_except].should == { :foo => /test/ }
236
236
  end
237
237
 
238
238
  it 'recognizes `--except-branch` and `--except-<property>` together' do
239
- Twig::Branch.stub(:all_properties) { %w[foo] }
239
+ Twig::Branch.stub(:all_property_names) { %w[foo] }
240
240
 
241
241
  @twig.read_cli_options!(%w[--except-branch test --except-foo bar])
242
242
 
@@ -248,7 +248,7 @@ describe Twig::Cli do
248
248
 
249
249
  it 'does not recognize `--except-<property>` for a missing property' do
250
250
  property_name = 'foo'
251
- Twig::Branch.all_properties.should_not include(property_name) # Precondition
251
+ Twig::Branch.all_property_names.should_not include(property_name) # Precondition
252
252
  @twig.stub(:puts)
253
253
 
254
254
  begin
@@ -283,7 +283,7 @@ describe Twig::Cli do
283
283
  end
284
284
 
285
285
  it 'recognizes `--<property>-width`' do
286
- Twig::Branch.stub(:all_properties) { %w[foo] }
286
+ Twig::Branch.stub(:all_property_names) { %w[foo] }
287
287
  @twig.options[:property_width].should be_nil
288
288
  @twig.should_receive(:set_option).with(:property_width, :foo => '10')
289
289
 
@@ -304,6 +304,24 @@ describe Twig::Cli do
304
304
  @twig.options[:reverse].should be_true
305
305
  end
306
306
 
307
+ it 'recognizes `--github-api-uri-prefix`' do
308
+ @twig.options[:github_api_uri_prefix].should be_nil
309
+ prefix = 'https://github-enterprise.example.com/api/v3'
310
+
311
+ @twig.read_cli_options!(['--github-api-uri-prefix', prefix])
312
+
313
+ @twig.options[:github_api_uri_prefix].should == prefix
314
+ end
315
+
316
+ it 'recognizes `--github-uri-prefix`' do
317
+ @twig.options[:github_uri_prefix].should be_nil
318
+ prefix = 'https://github-enterprise.example.com'
319
+
320
+ @twig.read_cli_options!(['--github-uri-prefix', prefix])
321
+
322
+ @twig.options[:github_uri_prefix].should == prefix
323
+ end
324
+
307
325
  it 'handles invalid options' do
308
326
  @twig.should_receive(:abort_for_option_exception) do |exception|
309
327
  exception.should be_a(OptionParser::InvalidOption)
@@ -74,7 +74,7 @@ describe Twig::Display do
74
74
 
75
75
  describe '#branch_list_headers' do
76
76
  before :each do
77
- Twig::Branch.stub(:all_properties => %w[foo quux])
77
+ Twig::Branch.stub(:all_property_names => %w[foo quux])
78
78
  end
79
79
 
80
80
  it 'returns a string of branch properties and underlines' do
@@ -146,23 +146,28 @@ describe Twig::Display do
146
146
 
147
147
  describe '#branch_list_line' do
148
148
  before :each do
149
- @current_branch_name = 'my-branch'
150
- Twig::Branch.stub(:all_properties => %w[foo bar])
151
- @twig.should_receive(:get_branch_property).
152
- with(anything, 'foo').and_return('foo!')
153
- @twig.should_receive(:get_branch_property).
154
- with(anything, 'bar').and_return('bar!')
155
- @twig.should_receive(:current_branch_name).
156
- and_return(@current_branch_name)
157
- @commit_time = Twig::CommitTime.new(Time.now, '')
158
- @commit_time.should_receive(:to_s).and_return('2000-01-01')
149
+ @current_branch = Twig::Branch.new('my-branch')
150
+ @other_branch = Twig::Branch.new('other-branch')
151
+ @twig.should_receive(:current_branch_name).and_return(@current_branch.name)
152
+ Twig::Branch.stub(:all_property_names => %w[foo bar])
153
+ @current_branch.stub(:get_properties => {
154
+ 'foo' => 'foo!',
155
+ 'bar' => 'bar!'
156
+ })
157
+ @other_branch.stub(:get_properties => {
158
+ 'foo' => 'foo!',
159
+ 'bar' => 'bar!'
160
+ })
161
+ commit_time = Twig::CommitTime.new(Time.now, '')
162
+ commit_time.should_receive(:to_s).and_return('2000-01-01')
163
+ @current_branch.stub(:last_commit_time => commit_time)
164
+ @other_branch.stub(:last_commit_time => commit_time)
159
165
  end
160
166
 
161
167
  it 'returns a line for the current branch' do
162
168
  indicator = Twig::Display::CURRENT_BRANCH_INDICATOR
163
- branch = Twig::Branch.new('my-branch')
169
+ branch = @current_branch
164
170
  branch_regexp = /#{Regexp.escape(indicator)}#{Regexp.escape(branch.name)}/
165
- branch.should_receive(:last_commit_time).and_return(@commit_time)
166
171
 
167
172
  result = @twig.branch_list_line(branch)
168
173
 
@@ -170,20 +175,14 @@ describe Twig::Display do
170
175
  end
171
176
 
172
177
  it 'returns a line for a branch other than the current branch' do
173
- branch = Twig::Branch.new('other-branch')
174
- branch.should_receive(:last_commit_time).and_return(@commit_time)
175
-
178
+ branch = @other_branch
176
179
  result = @twig.branch_list_line(branch)
177
-
178
180
  result.should =~ /2000-01-01\s+foo!\s+bar!\s+#{Regexp.escape(branch.name)}/
179
181
  end
180
182
 
181
183
  it 'returns a line containing an empty branch property' do
182
- Twig::Branch.stub(:all_properties => %w[foo bar baz])
183
- @twig.should_receive(:get_branch_property).
184
- with(anything, 'baz').and_return(nil)
185
- branch = Twig::Branch.new('other-branch')
186
- branch.should_receive(:last_commit_time).and_return(@commit_time)
184
+ Twig::Branch.should_receive(:all_property_names).and_return(%w[foo bar baz])
185
+ branch = @other_branch
187
186
 
188
187
  result = @twig.branch_list_line(branch)
189
188
 
@@ -192,11 +191,14 @@ describe Twig::Display do
192
191
  end
193
192
 
194
193
  it 'changes line break characters to spaces' do
195
- branch = Twig::Branch.new('my-branch')
196
- branch.should_receive(:last_commit_time).and_return(@commit_time)
197
- Twig::Branch.stub(:all_properties => %w[foo bar linebreaks])
198
- @twig.should_receive(:get_branch_property).
199
- with(anything, 'linebreaks').and_return("line\r\nbreaks!")
194
+ branch = @current_branch
195
+ property_names = %w[foo bar linebreaks]
196
+ branch.should_receive(:get_properties).with(property_names).and_return(
197
+ 'foo' => 'foo!',
198
+ 'bar' => 'bar!',
199
+ 'linebreaks' => "line\r\nbreaks!"
200
+ )
201
+ Twig::Branch.should_receive(:all_property_names).and_return(property_names)
200
202
 
201
203
  result = @twig.branch_list_line(branch)
202
204
 
@@ -204,8 +206,7 @@ describe Twig::Display do
204
206
  end
205
207
 
206
208
  it 'returns a line with custom column widths' do
207
- branch = Twig::Branch.new('other-branch')
208
- branch.should_receive(:last_commit_time).and_return(@commit_time)
209
+ branch = @other_branch
209
210
  @twig.set_option(:property_width, :foo => 5)
210
211
 
211
212
  result = @twig.branch_list_line(branch)
@@ -225,9 +226,8 @@ describe Twig::Display do
225
226
 
226
227
  it 'returns a line for the current branch' do
227
228
  indicator = Twig::Display::CURRENT_BRANCH_INDICATOR
228
- branch = Twig::Branch.new('my-branch')
229
+ branch = @current_branch
229
230
  branch_regexp = /#{Regexp.escape(indicator)}#{Regexp.escape(branch.name)}/
230
- branch.should_receive(:last_commit_time).and_return(@commit_time)
231
231
 
232
232
  result = @twig.branch_list_line(branch)
233
233
  unformatted_result = @twig.unformat_string(result)
@@ -241,8 +241,7 @@ describe Twig::Display do
241
241
  end
242
242
 
243
243
  it 'returns a line for a branch other than the current branch' do
244
- branch = Twig::Branch.new('other-branch')
245
- branch.should_receive(:last_commit_time).and_return(@commit_time)
244
+ branch = @other_branch
246
245
 
247
246
  result = @twig.branch_list_line(branch)
248
247
 
@@ -7,15 +7,15 @@ describe Twig::Options do
7
7
 
8
8
  describe '#read_config_file!' do
9
9
  before :each do
10
- File.should_receive(:expand_path).with(Twig::CONFIG_FILE).
11
- and_return(Twig::CONFIG_FILE)
10
+ File.should_receive(:expand_path).with(Twig::CONFIG_PATH).
11
+ and_return(Twig::CONFIG_PATH)
12
12
  end
13
13
 
14
14
  it 'reads and sets a single option' do
15
15
  @twig.stub(:all_branch_names => ['test'])
16
16
  file = double('file')
17
- File.should_receive(:readable?).with(Twig::CONFIG_FILE).and_return(true)
18
- File.should_receive(:open).with(Twig::CONFIG_FILE).and_yield(file)
17
+ File.should_receive(:readable?).with(Twig::CONFIG_PATH).and_return(true)
18
+ File.should_receive(:open).with(Twig::CONFIG_PATH).and_yield(file)
19
19
  file.should_receive(:read).and_return('branch: test')
20
20
  @twig.options[:branch].should be_nil # Precondition
21
21
 
@@ -24,11 +24,32 @@ describe Twig::Options do
24
24
  @twig.options[:branch].should == 'test'
25
25
  end
26
26
 
27
+ it 'reads an option if only the deprecated config file exists' do
28
+ @twig.stub(:all_branch_names => ['test'])
29
+ file = double('file')
30
+ path = Twig::CONFIG_PATH
31
+ deprecated_path = Twig::DEPRECATED_CONFIG_PATH
32
+ File.should_receive(:readable?).with(path).and_return(false)
33
+ File.should_receive(:readable?).with(deprecated_path).and_return(true)
34
+ File.should_receive(:expand_path).with(deprecated_path).
35
+ and_return(deprecated_path)
36
+ File.should_receive(:open).with(deprecated_path).and_yield(file)
37
+ file.should_receive(:read).and_return('branch: test')
38
+ $stderr.should_receive(:puts) do |message|
39
+ message.should =~ /^DEPRECATED:/
40
+ end
41
+ @twig.options[:branch].should be_nil
42
+
43
+ @twig.read_config_file!
44
+
45
+ @twig.options[:branch].should == 'test'
46
+ end
47
+
27
48
  it 'reads and sets multiple options' do
28
49
  @twig.stub(:all_branch_names => ['test'])
29
50
  file = double('file')
30
- File.should_receive(:readable?).with(Twig::CONFIG_FILE).and_return(true)
31
- File.should_receive(:open).with(Twig::CONFIG_FILE).and_yield(file)
51
+ File.should_receive(:readable?).with(Twig::CONFIG_PATH).and_return(true)
52
+ File.should_receive(:open).with(Twig::CONFIG_PATH).and_yield(file)
32
53
  file.should_receive(:read).and_return([
33
54
  # Filtering branches:
34
55
  'branch: test',
@@ -41,11 +62,17 @@ describe Twig::Options do
41
62
  # Displaying branches:
42
63
  'header-style: green bold',
43
64
  'reverse: true',
44
- 'foo-width: 4'
65
+ 'foo-width: 4',
66
+
67
+ # GitHub integration:
68
+ 'github-api-uri-prefix: https://github-enterprise.example.com/api/v3',
69
+ 'github-uri-prefix: https://github-enterprise.example.com'
45
70
  ].join("\n"))
46
71
 
47
72
  # Check preconditions
48
73
  @twig.options[:branch].should be_nil
74
+ @twig.options[:github_api_uri_prefix].should be_nil
75
+ @twig.options[:github_uri_prefix].should be_nil
49
76
  @twig.options[:header_color].should == Twig::DEFAULT_HEADER_COLOR
50
77
  @twig.options[:header_weight].should be_nil
51
78
  @twig.options[:max_days_old].should be_nil
@@ -57,6 +84,10 @@ describe Twig::Options do
57
84
  @twig.read_config_file!
58
85
 
59
86
  @twig.options[:branch].should == 'test'
87
+ @twig.options[:github_api_uri_prefix].
88
+ should == 'https://github-enterprise.example.com/api/v3'
89
+ @twig.options[:github_uri_prefix].
90
+ should == 'https://github-enterprise.example.com'
60
91
  @twig.options[:header_color].should == :green
61
92
  @twig.options[:header_weight].should == :bold
62
93
  @twig.options[:max_days_old].should == 30.5
@@ -74,8 +105,8 @@ describe Twig::Options do
74
105
 
75
106
  it 'skips comments' do
76
107
  file = double('file')
77
- File.should_receive(:readable?).with(Twig::CONFIG_FILE).and_return(true)
78
- File.should_receive(:open).with(Twig::CONFIG_FILE).and_yield(file)
108
+ File.should_receive(:readable?).with(Twig::CONFIG_PATH).and_return(true)
109
+ File.should_receive(:open).with(Twig::CONFIG_PATH).and_yield(file)
79
110
  file.should_receive(:read).and_return([
80
111
  '# max-days-old: 40',
81
112
  'max-days-old: 30',
@@ -91,8 +122,8 @@ describe Twig::Options do
91
122
 
92
123
  it 'skips line breaks' do
93
124
  file = double('file')
94
- File.should_receive(:readable?).with(Twig::CONFIG_FILE).and_return(true)
95
- File.should_receive(:open).with(Twig::CONFIG_FILE).and_yield(file)
125
+ File.should_receive(:readable?).with(Twig::CONFIG_PATH).and_return(true)
126
+ File.should_receive(:open).with(Twig::CONFIG_PATH).and_yield(file)
96
127
  file.should_receive(:read).and_return([
97
128
  'except-branch: test-except',
98
129
  '',
@@ -110,7 +141,12 @@ describe Twig::Options do
110
141
  end
111
142
 
112
143
  it 'fails gracefully if the config file is not readable' do
113
- File.should_receive(:readable?).with(Twig::CONFIG_FILE).and_return(false)
144
+ path = Twig::CONFIG_PATH
145
+ deprecated_path = Twig::DEPRECATED_CONFIG_PATH
146
+ File.should_receive(:readable?).with(path).and_return(false)
147
+ File.should_receive(:readable?).with(deprecated_path).and_return(false)
148
+ File.should_receive(:expand_path).with(deprecated_path).
149
+ and_return(deprecated_path)
114
150
  lambda { @twig.read_config_file! }.should_not raise_exception
115
151
  end
116
152
  end
@@ -143,6 +179,18 @@ describe Twig::Options do
143
179
  end
144
180
  end
145
181
 
182
+ it 'sets a :github_api_uri_prefix option' do
183
+ prefix = 'https://github-enterprise.example.com/api/v3'
184
+ @twig.set_option(:github_api_uri_prefix, prefix)
185
+ @twig.options[:github_api_uri_prefix].should == prefix
186
+ end
187
+
188
+ it 'sets a :github_uri_prefix option' do
189
+ prefix = 'https://github-enterprise.example.com'
190
+ @twig.set_option(:github_uri_prefix, prefix)
191
+ @twig.options[:github_uri_prefix].should == prefix
192
+ end
193
+
146
194
  it 'sets a :header_style option' do
147
195
  style = 'red bold'
148
196
  @twig.should_receive(:set_header_style_option).with(style)
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: twig
3
3
  version: !ruby/object:Gem::Version
4
- hash: 9
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 3
9
- version: "1.3"
8
+ - 4
9
+ version: "1.4"
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ron DeVera
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2013-05-22 00:00:00 -07:00
17
+ date: 2013-08-07 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -86,12 +86,14 @@ email:
86
86
  - hello@rondevera.com
87
87
  executables:
88
88
  - twig
89
+ - twig-diff
89
90
  - twig-gh-open
90
91
  - twig-gh-open-issue
91
92
  - twig-gh-update
92
93
  - twig-help
93
94
  - twig-init-completion
94
95
  - twig-init-completion-bash
96
+ - twig-rebase
95
97
  extensions: []
96
98
 
97
99
  extra_rdoc_files: []
@@ -106,12 +108,14 @@ files:
106
108
  - README.md
107
109
  - Rakefile
108
110
  - bin/twig
111
+ - bin/twig-diff
109
112
  - bin/twig-gh-open
110
113
  - bin/twig-gh-open-issue
111
114
  - bin/twig-gh-update
112
115
  - bin/twig-help
113
116
  - bin/twig-init-completion
114
117
  - bin/twig-init-completion-bash
118
+ - bin/twig-rebase
115
119
  - lib/twig.rb
116
120
  - lib/twig/branch.rb
117
121
  - lib/twig/cli.rb