transpec 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -0
  3. data/CHANGELOG.md +9 -0
  4. data/Guardfile +4 -0
  5. data/README.md +102 -5
  6. data/README.md.erb +107 -0
  7. data/Rakefile +26 -5
  8. data/bin/transpec +1 -1
  9. data/lib/transpec/ast/scanner.rb +3 -0
  10. data/lib/transpec/ast/scope_stack.rb +2 -0
  11. data/lib/transpec/cli.rb +4 -0
  12. data/lib/transpec/rewriter.rb +14 -2
  13. data/lib/transpec/syntax.rb +36 -1
  14. data/lib/transpec/syntax/any_instanceable.rb +24 -0
  15. data/lib/transpec/syntax/be_close.rb +32 -0
  16. data/lib/transpec/syntax/double.rb +14 -8
  17. data/lib/transpec/syntax/expectizable.rb +20 -0
  18. data/lib/transpec/syntax/matcher.rb +16 -8
  19. data/lib/transpec/syntax/method_stub.rb +26 -40
  20. data/lib/transpec/syntax/send_node_syntax.rb +2 -4
  21. data/lib/transpec/syntax/should.rb +25 -16
  22. data/lib/transpec/syntax/should_receive.rb +32 -35
  23. data/lib/transpec/version.rb +1 -1
  24. data/spec/spec_helper.rb +8 -6
  25. data/spec/support/shared_context.rb +4 -0
  26. data/spec/transpec/ast/scanner_spec.rb +1 -1
  27. data/spec/transpec/ast/scope_stack_spec.rb +1 -0
  28. data/spec/transpec/cli_spec.rb +1 -0
  29. data/spec/transpec/configuration_spec.rb +1 -0
  30. data/spec/transpec/git_spec.rb +8 -0
  31. data/spec/transpec/rewriter_spec.rb +30 -0
  32. data/spec/transpec/syntax/be_close_spec.rb +50 -0
  33. data/spec/transpec/syntax/double_spec.rb +3 -2
  34. data/spec/transpec/syntax/matcher_spec.rb +1 -0
  35. data/spec/transpec/syntax/method_stub_spec.rb +1 -0
  36. data/spec/transpec/syntax/should_receive_spec.rb +1 -0
  37. data/spec/transpec/syntax/should_spec.rb +1 -0
  38. data/spec/transpec/util_spec.rb +1 -0
  39. data/transpec.gemspec +1 -0
  40. metadata +23 -3
  41. data/lib/transpec.rb +0 -17
@@ -5,7 +5,7 @@ module Transpec
5
5
  module Version
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 1
8
+ PATCH = 2
9
9
 
10
10
  def self.to_s
11
11
  [MAJOR, MINOR, PATCH].join('.')
@@ -1,8 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
3
  RSpec.configure do |config|
4
+ # Yes, I'm writing specs in should syntax intentionally!
4
5
  config.expect_with :rspec do |c|
5
- # Yes, I'm writing specs in should syntax intentionally!
6
+ c.syntax = :should
7
+ end
8
+
9
+ config.mock_with :rspec do |c|
6
10
  c.syntax = :should
7
11
  end
8
12
 
@@ -10,10 +14,6 @@ RSpec.configure do |config|
10
14
  config.filter_run_excluding do_not_run_in_transpeced_spec: ENV['TRANSPECED_SPEC']
11
15
  end
12
16
 
13
- Dir[File.join(File.dirname(__FILE__), 'support', '*')].each do |path|
14
- require path
15
- end
16
-
17
17
  require 'simplecov'
18
18
  SimpleCov.coverage_dir(File.join('spec', 'coverage'))
19
19
 
@@ -30,4 +30,6 @@ SimpleCov.start do
30
30
  add_filter '/vendor/bundle/'
31
31
  end
32
32
 
33
- require 'transpec'
33
+ Dir[File.join(File.dirname(__FILE__), 'support', '*')].each do |path|
34
+ require path
35
+ end
@@ -1,5 +1,9 @@
1
1
  # coding: utf-8
2
2
 
3
+ require 'transpec/ast/scanner'
4
+ require 'transpec/syntax/should'
5
+ require 'parser'
6
+ require 'parser/current'
3
7
  require 'tmpdir'
4
8
 
5
9
  # This context requires `source` to be defined with #let.
@@ -1,12 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/ast/scanner'
4
5
 
5
6
  module Transpec
6
7
  module AST
7
8
  describe Scanner do
8
9
  include_context 'parsed objects'
9
- include ::AST::Sexp
10
10
 
11
11
  let(:source) do
12
12
  <<-END
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/ast/scope_stack'
4
5
 
5
6
  module Transpec
6
7
  module AST
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/cli'
4
5
 
5
6
  module Transpec
6
7
  describe CLI do
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/configuration'
4
5
 
5
6
  module Transpec
6
7
  describe Configuration do
@@ -1,11 +1,19 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/git'
4
5
 
5
6
  module Transpec
6
7
  describe Git do
7
8
  include_context 'isolated environment'
8
9
 
10
+ if ENV['TRAVIS']
11
+ before do
12
+ system('git config --global user.email "you@example.com"')
13
+ system('git config --global user.name "Your Name"')
14
+ end
15
+ end
16
+
9
17
  describe '.command_available?' do
10
18
  subject { Git.command_available? }
11
19
 
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/rewriter'
4
5
 
5
6
  module Transpec
6
7
  describe Rewriter do
@@ -34,6 +35,7 @@ module Transpec
34
35
  something.stub!(:message)
35
36
  something.should_receive(:message)
36
37
  something.should_not == 'foo'
38
+ expect(1.0 / 3.0).to be_close(0.333, 0.001)
37
39
  end
38
40
  end
39
41
  END
@@ -137,6 +139,34 @@ module Transpec
137
139
  end
138
140
  end
139
141
 
142
+ context 'when the configuration #replace_deprecated_method? is true' do
143
+ before { configuration.replace_deprecated_method = true }
144
+
145
+ it 'invokes Double#convert_to_double!' do
146
+ Syntax::Double.any_instance.should_receive(:convert_to_double!)
147
+ rewriter.rewrite(source)
148
+ end
149
+
150
+ it 'invokes BeClose#convert_to_be_within!' do
151
+ Syntax::BeClose.any_instance.should_receive(:convert_to_be_within!)
152
+ rewriter.rewrite(source)
153
+ end
154
+ end
155
+
156
+ context 'when the configuration #replace_deprecated_method? is true' do
157
+ before { configuration.replace_deprecated_method = false }
158
+
159
+ it 'does not invoke Double#convert_to_double!' do
160
+ Syntax::Double.any_instance.should_not_receive(:convert_to_double!)
161
+ rewriter.rewrite(source)
162
+ end
163
+
164
+ it 'does not invoke BeClose#convert_to_be_within!' do
165
+ Syntax::BeClose.any_instance.should_not_receive(:convert_to_be_within!)
166
+ rewriter.rewrite(source)
167
+ end
168
+ end
169
+
140
170
  context 'when the source have overlapped rewrite targets' do
141
171
  let(:source) do
142
172
  <<-END
@@ -0,0 +1,50 @@
1
+ # coding: utf-8
2
+
3
+ require 'spec_helper'
4
+ require 'transpec/syntax/be_close'
5
+
6
+ module Transpec
7
+ class Syntax
8
+ describe BeClose do
9
+ include_context 'parsed objects'
10
+
11
+ subject(:be_close_object) do
12
+ AST::Scanner.scan(ast) do |node, ancestor_nodes|
13
+ next unless BeClose.target_node?(node)
14
+ return BeClose.new(
15
+ node,
16
+ ancestor_nodes,
17
+ in_example_group_context?,
18
+ source_rewriter
19
+ )
20
+ end
21
+ fail 'No be_close node is found!'
22
+ end
23
+
24
+ let(:in_example_group_context?) { true }
25
+
26
+ describe '#convert_to_be_within!' do
27
+ let(:source) do
28
+ <<-END
29
+ it 'is close to 0.333' do
30
+ (1.0 / 3.0).should be_close(0.333, 0.001)
31
+ end
32
+ END
33
+ end
34
+
35
+ let(:expected_source) do
36
+ <<-END
37
+ it 'is close to 0.333' do
38
+ (1.0 / 3.0).should be_within(0.001).of(0.333)
39
+ end
40
+ END
41
+ end
42
+
43
+ it 'converts into `be_within(delta).of(expected)` form' do
44
+ be_close_object.convert_to_be_within!
45
+ rewritten_source.should == expected_source
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/syntax/double'
4
5
 
5
6
  module Transpec
6
7
  class Syntax
@@ -37,9 +38,9 @@ module Transpec
37
38
  end
38
39
  end
39
40
 
40
- describe '#replace_deprecated_method!' do
41
+ describe '#convert_to_double!' do
41
42
  before do
42
- double_object.replace_deprecated_method!
43
+ double_object.convert_to_double!
43
44
  end
44
45
 
45
46
  [:mock, :stub].each do |method|
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/syntax/matcher'
4
5
 
5
6
  module Transpec
6
7
  class Syntax
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/syntax/method_stub'
4
5
 
5
6
  module Transpec
6
7
  class Syntax
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/syntax/should_receive'
4
5
 
5
6
  module Transpec
6
7
  class Syntax
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/syntax/should'
4
5
 
5
6
  module Transpec
6
7
  class Syntax
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec/util'
4
5
 
5
6
  module Transpec
6
7
  describe Util do
@@ -28,5 +28,6 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency 'rubocop', '~> 0.10'
29
29
  spec.add_development_dependency 'guard-rspec', '~> 3.0'
30
30
  spec.add_development_dependency 'guard-rubocop', '~> 0.2'
31
+ spec.add_development_dependency 'guard-shell', '~> 0.5'
31
32
  spec.add_development_dependency 'ruby_gntp', '~> 0.3'
32
33
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transpec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuji Nakayama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-08 00:00:00.000000000 Z
11
+ date: 2013-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: parser
@@ -122,6 +122,20 @@ dependencies:
122
122
  - - ~>
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.2'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard-shell
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ~>
130
+ - !ruby/object:Gem::Version
131
+ version: '0.5'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ~>
137
+ - !ruby/object:Gem::Version
138
+ version: '0.5'
125
139
  - !ruby/object:Gem::Dependency
126
140
  name: ruby_gntp
127
141
  requirement: !ruby/object:Gem::Requirement
@@ -148,13 +162,14 @@ files:
148
162
  - .gitignore
149
163
  - .rubocop.yml
150
164
  - .travis.yml
165
+ - CHANGELOG.md
151
166
  - Gemfile
152
167
  - Guardfile
153
168
  - LICENSE.txt
154
169
  - README.md
170
+ - README.md.erb
155
171
  - Rakefile
156
172
  - bin/transpec
157
- - lib/transpec.rb
158
173
  - lib/transpec/ast/scanner.rb
159
174
  - lib/transpec/ast/scope_stack.rb
160
175
  - lib/transpec/cli.rb
@@ -162,7 +177,10 @@ files:
162
177
  - lib/transpec/git.rb
163
178
  - lib/transpec/rewriter.rb
164
179
  - lib/transpec/syntax.rb
180
+ - lib/transpec/syntax/any_instanceable.rb
181
+ - lib/transpec/syntax/be_close.rb
165
182
  - lib/transpec/syntax/double.rb
183
+ - lib/transpec/syntax/expectizable.rb
166
184
  - lib/transpec/syntax/matcher.rb
167
185
  - lib/transpec/syntax/method_stub.rb
168
186
  - lib/transpec/syntax/send_node_syntax.rb
@@ -181,6 +199,7 @@ files:
181
199
  - spec/transpec/configuration_spec.rb
182
200
  - spec/transpec/git_spec.rb
183
201
  - spec/transpec/rewriter_spec.rb
202
+ - spec/transpec/syntax/be_close_spec.rb
184
203
  - spec/transpec/syntax/double_spec.rb
185
204
  - spec/transpec/syntax/matcher_spec.rb
186
205
  - spec/transpec/syntax/method_stub_spec.rb
@@ -224,6 +243,7 @@ test_files:
224
243
  - spec/transpec/configuration_spec.rb
225
244
  - spec/transpec/git_spec.rb
226
245
  - spec/transpec/rewriter_spec.rb
246
+ - spec/transpec/syntax/be_close_spec.rb
227
247
  - spec/transpec/syntax/double_spec.rb
228
248
  - spec/transpec/syntax/matcher_spec.rb
229
249
  - spec/transpec/syntax/method_stub_spec.rb
@@ -1,17 +0,0 @@
1
- # coding: utf-8
2
-
3
- require 'transpec/configuration'
4
- require 'transpec/cli'
5
- require 'transpec/git'
6
- require 'transpec/rewriter'
7
- require 'transpec/util'
8
- require 'transpec/version'
9
- require 'transpec/ast/scanner'
10
- require 'transpec/ast/scope_stack'
11
- require 'transpec/syntax'
12
- require 'transpec/syntax/send_node_syntax'
13
- require 'transpec/syntax/double'
14
- require 'transpec/syntax/matcher'
15
- require 'transpec/syntax/method_stub'
16
- require 'transpec/syntax/should'
17
- require 'transpec/syntax/should_receive'