transpec 0.0.3 → 0.0.4

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1c33db67b6816b403a76cc42ab37c1a2fa20f0a5
4
- data.tar.gz: 5842ca3f82cdd32eda912aabc59fe59b0b9e857f
3
+ metadata.gz: c4de7050825b2892a104decbe5977f02054f4d57
4
+ data.tar.gz: 26acc442dbdfcbf63b93b94556dc6406a63165b3
5
5
  SHA512:
6
- metadata.gz: 57d17382d629af2561f02042eb31f8d1f64ac6d95c63251e55699974c1340da56947d91c51dd198e19c67b26e53edc0843c8aa58eb1fc73fa405ca8f99850327
7
- data.tar.gz: 586efdc379d22a195160a5d5e83b4f0284b23c67fdb2b74c9f5b9917167c6de5ab55037ee20720925dbf1cce082463e0f3f9ce4140c4d9b62a11fbc7ea167873
6
+ metadata.gz: 2efb1b828b2c2e713e4d904cd34369abe134bb8d0cc0cc4381d06785cf77ef31ca7eae2f0f42298421c3603c498d3b85b66a4e72fdc1bb55a4c29cd30b2c2f7d
7
+ data.tar.gz: 367775428c9155fd721a33621b2cf561ea3c684d16baead448019bcd3f7e9008f2f30a55771dc9ca2f2c45d3e12e665830967945fcce78f5578b1791446018e9
data/.travis.yml CHANGED
@@ -3,4 +3,6 @@ rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
5
  - jruby-19mode
6
- script: bundle exec rake
6
+ script:
7
+ - bundle exec rake
8
+ - bundle exec rake test:all
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Master
4
4
 
5
+ ## v0.0.4
6
+
7
+ * Fix a bug where necessary parentheses were not added when converting operator matcher to non-operator matcher in some cases (e.g. `== (2 - 1) + (1 + 2)` was converted into `eq(2 - 1) + (1 + 2)` unintentionally)
8
+
5
9
  ## v0.0.3
6
10
 
7
11
  * Suppress addition of superfluous parentheses when converting operator matcher that have argument in parentheses to non-operator matcher (e.g. from `== (2 - 1)` to `eq(2 - 1)`)
data/Rakefile CHANGED
@@ -42,4 +42,64 @@ end
42
42
 
43
43
  Rake::Task[:release].enhance([:abort_unless_latest_readme_is_committed])
44
44
 
45
+ namespace :test do
46
+ projects = [
47
+ [:twitter, 'https://github.com/sferik/twitter.git', 'v4.1.0'],
48
+ [:guard, 'https://github.com/guard/guard.git', 'v1.8.1', '--without development']
49
+ ]
50
+
51
+ desc 'Test Transpec on all other projects'
52
+ task :all => projects.map(&:first)
53
+
54
+ projects.each do |name, url, ref, bundler_args|
55
+ desc "Test Transpec on #{name.to_s.capitalize} project"
56
+ task name do
57
+ require 'tmpdir'
58
+
59
+ Dir.chdir(Dir.mktmpdir) do
60
+ test_on_project(name.to_s.capitalize, url, ref, bundler_args)
61
+ end
62
+ end
63
+ end
64
+
65
+ def test_on_project(name, url, ref, bundler_args = nil)
66
+ require 'transpec'
67
+
68
+ puts " Testing on #{name} Project ".center(80, '=')
69
+
70
+ # Disabling checkout here to suppress "detached HEAD" warning.
71
+ sh "git clone --no-checkout --depth 1 --branch #{ref} #{url}"
72
+
73
+ repo_dir = File.basename(url, '.git')
74
+
75
+ Dir.chdir(repo_dir) do
76
+ sh "git checkout --quiet #{ref}"
77
+ with_clean_bundler_env do
78
+ sh "bundle install #{bundler_args}"
79
+ sh File.join(Transpec.root, 'bin', 'transpec')
80
+ sh 'rspec'
81
+ end
82
+ end
83
+ end
84
+
85
+ def with_clean_bundler_env
86
+ if defined?(Bundler)
87
+ Bundler.with_clean_env do
88
+ # Bundler.with_clean_env cleans environment variables
89
+ # which are set after bundler is loaded.
90
+ prepare_env
91
+ yield
92
+ end
93
+ else
94
+ prepare_env
95
+ yield
96
+ end
97
+ end
98
+
99
+ def prepare_env
100
+ # Disable Coveralls in other projects.
101
+ ENV['CI'] = ENV['JENKINS_URL'] = ENV['COVERALLS_RUN_LOCALLY'] = nil
102
+ end
103
+ end
104
+
45
105
  task default: [:spec, :style, :readme]
@@ -9,7 +9,7 @@ module Transpec
9
9
  include SendNodeSyntax
10
10
 
11
11
  def wrap_subject_in_expect!
12
- if Util.in_parentheses?(subject_range)
12
+ if Util.in_parentheses?(subject_node)
13
13
  insert_before(subject_range, 'expect')
14
14
  else
15
15
  insert_before(subject_range, 'expect(')
data/lib/transpec/util.rb CHANGED
@@ -41,19 +41,10 @@ module Transpec
41
41
  node.loc.begin.source.start_with?('<<')
42
42
  end
43
43
 
44
- def in_parentheses?(subject)
45
- source = case subject
46
- when String
47
- subject
48
- when Parser::Source::Range
49
- subject.source
50
- when Parser::AST::Node
51
- subject.loc.expression.source
52
- else
53
- fail ArgumentError
54
- end
55
-
56
- source[0] == '('
44
+ def in_parentheses?(node)
45
+ return false unless node.type == :begin
46
+ source = node.loc.expression.source
47
+ source[0] == '(' && source[-1] == ')'
57
48
  end
58
49
 
59
50
  def indentation_of_line(node)
@@ -5,7 +5,7 @@ module Transpec
5
5
  module Version
6
6
  MAJOR = 0
7
7
  MINOR = 0
8
- PATCH = 3
8
+ PATCH = 4
9
9
 
10
10
  def self.to_s
11
11
  [MAJOR, MINOR, PATCH].join('.')
data/lib/transpec.rb ADDED
@@ -0,0 +1,7 @@
1
+ # coding: utf-8
2
+
3
+ module Transpec
4
+ def self.root
5
+ File.expand_path('..', File.dirname(__FILE__))
6
+ end
7
+ end
data/spec/spec_spec.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # coding: utf-8
2
2
 
3
3
  require 'spec_helper'
4
+ require 'transpec'
4
5
  require 'tmpdir'
5
6
  require 'English'
6
7
 
@@ -8,8 +9,7 @@ describe 'Transpec project spec', :do_not_run_in_converted_spec do
8
9
  copied_project_root = Dir.mktmpdir
9
10
 
10
11
  before(:all) do
11
- project_root = File.expand_path('..', File.dirname(__FILE__))
12
- Dir.chdir(project_root) do
12
+ Dir.chdir(Transpec.root) do
13
13
  FileUtils.cp_r(Dir['*'], copied_project_root)
14
14
  end
15
15
  end
@@ -155,6 +155,28 @@ module Transpec
155
155
  end
156
156
  end
157
157
 
158
+ context 'when it is `== (2 - 1) + (1 + 2)` form' do
159
+ let(:source) do
160
+ <<-END
161
+ it 'is 1' do
162
+ subject.should == (2 - 1) + (1 + 2)
163
+ end
164
+ END
165
+ end
166
+
167
+ let(:expected_source) do
168
+ <<-END
169
+ it 'is 1' do
170
+ subject.should eq((2 - 1) + (1 + 2))
171
+ end
172
+ END
173
+ end
174
+
175
+ it 'converts into `eq((2 - 1) + (1 + 2))` form' do
176
+ rewritten_source.should == expected_source
177
+ end
178
+ end
179
+
158
180
  context "when it is `== { 'key' => 'value' }` form" do
159
181
  let(:source) do
160
182
  <<-END
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: transpec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuji Nakayama
@@ -170,6 +170,7 @@ files:
170
170
  - README.md.erb
171
171
  - Rakefile
172
172
  - bin/transpec
173
+ - lib/transpec.rb
173
174
  - lib/transpec/ast/scanner.rb
174
175
  - lib/transpec/ast/scope_stack.rb
175
176
  - lib/transpec/cli.rb