rspec-parameterized 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d776a568792d33ea0eaa01f39705ca68cff76078
4
+ data.tar.gz: fdbb572188d277665e6dd1f6d163464c6cb26425
5
+ SHA512:
6
+ metadata.gz: 46bd4b1d00517f8cc4a68fe57e31615ec2495d6cb28c6e0c384aa40d5494debe0518ed531eeafbea37cde2c5dfa80f0d2ec18ea9a5a9e2aaead35a7e98e2582f
7
+ data.tar.gz: d7c3acaff5f7e3cf2f9878d58022399bdf0107892cfe0dd65dfd5a7ffab00a116c6b3dc7940be9c0b8633e62e16664d11b146b27abb87bdaeb3baffefa53750c
data/.travis.yml ADDED
@@ -0,0 +1,7 @@
1
+ rvm:
2
+ - 1.9.3
3
+ - 2.0
4
+ - 2.1
5
+ matrix:
6
+ allow_failures:
7
+ - rvm: 1.9.3
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # RSpec::Parameterized
1
+ # RSpec::Parameterized [![Build Status](https://travis-ci.org/tomykaira/rspec-parameterized.svg)](https://travis-ci.org/tomykaira/rspec-parameterized)
2
2
 
3
3
  Support simple parameterized test syntax in rspec.
4
4
 
@@ -10,7 +10,7 @@ Support simple parameterized test syntax in rspec.
10
10
  [0 , 0 , 0]
11
11
  ]
12
12
  end
13
-
13
+
14
14
  with_them do
15
15
  it "should do additions" do
16
16
  (a + b).should == answer
data/Rakefile CHANGED
@@ -1,2 +1,11 @@
1
1
  #!/usr/bin/env rake
2
2
  require "bundler/gem_tasks"
3
+
4
+ task :default => [:spec]
5
+ begin
6
+ require 'rspec/core/rake_task'
7
+ RSpec::Core::RakeTask.new(:spec) do |spec|
8
+ spec.pattern = 'spec/**/*_spec.rb'
9
+ spec.rspec_opts = ['-cfs']
10
+ end
11
+ end
@@ -1,5 +1,5 @@
1
1
  module RSpec
2
2
  module Parameterized
3
- VERSION = "0.0.9"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -1,6 +1,7 @@
1
1
  require "rspec/parameterized/version"
2
- require 'ruby2ruby'
3
- require 'sourcify'
2
+ require 'parser'
3
+ require 'unparser'
4
+ require 'proc_to_ast'
4
5
 
5
6
  module RSpec
6
7
  module Parameterized
@@ -77,31 +78,43 @@ module RSpec
77
78
  end
78
79
 
79
80
  def separate_table_like_block(b)
80
- sexp = b.to_sexp(:strip_enclosure => true)
81
-
82
- if sexp.sexp_type == :block
83
- lines = sexp.find_nodes(:call)
81
+ ast = b.to_ast
82
+ inner_ast = ast.children[2]
83
+ if inner_ast.type == :send
84
+ lines = [inner_ast]
84
85
  else
85
- lines = [sexp]
86
+ lines = inner_ast.children
86
87
  end
87
88
 
88
- lines.map do |l|
89
- rev_insts = []
90
- while l.sexp_type == :call and l[2] == :|
91
- rev_insts << eval_sexp(l[3][1])
92
- l = l[1]
89
+ lines.map do |node|
90
+ if node.type == :send
91
+ buf = []
92
+ extract_value(node, buf)
93
+ buf.reverse
93
94
  end
94
- rev_insts << eval_sexp(l)
95
- rev_insts.reverse
96
95
  end
97
96
  end
98
97
 
99
- def eval_sexp(sexp)
98
+ def extract_value(node, buf)
99
+ receiver, method, arg = node.children
100
+
101
+ if method == :|
102
+ buf << eval_source_fragment(Unparser.unparse(arg))
103
+ end
104
+
105
+ if receiver.is_a?(AST::Node) && receiver.type == :send && receiver.children[1] == :|
106
+ extract_value(receiver, buf)
107
+ else
108
+ buf << eval_source_fragment(Unparser.unparse(receiver))
109
+ end
110
+ end
111
+
112
+ def eval_source_fragment(source_fragment)
100
113
  instance = new # for evaluate let methods.
101
114
  if defined?(self.superclass::LetDefinitions)
102
115
  instance.extend self.superclass::LetDefinitions
103
116
  end
104
- instance.instance_eval(ruby2ruby.process(sexp))
117
+ instance.instance_eval(source_fragment)
105
118
  end
106
119
 
107
120
  def ruby2ruby
@@ -139,7 +152,7 @@ module RSpec
139
152
  def params_inspect(obj)
140
153
  begin
141
154
  obj.is_a?(Proc) ? obj.to_raw_source : obj.inspect
142
- rescue Sourcify::NoMatchingProcError
155
+ rescue Parser::SyntaxError
143
156
  return obj.inspect
144
157
  end
145
158
  end
@@ -10,8 +10,9 @@ I was inspired by [udzura's mock](https://gist.github.com/1881139).}
10
10
  gem.homepage = ""
11
11
 
12
12
  gem.add_dependency('rspec', '~> 2.13')
13
- gem.add_dependency('sourcify', '~> 0.6.0.rc2')
14
- gem.add_dependency('ruby2ruby')
13
+ gem.add_dependency('parser')
14
+ gem.add_dependency('unparser')
15
+ gem.add_dependency('proc_to_ast')
15
16
  gem.add_development_dependency('rake')
16
17
 
17
18
  gem.files = `git ls-files`.split($\)
metadata CHANGED
@@ -1,78 +1,83 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-parameterized
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
5
- prerelease:
4
+ version: 0.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - tomykaira
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-07-31 00:00:00.000000000 Z
11
+ date: 2014-04-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '2.13'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '2.13'
30
27
  - !ruby/object:Gem::Dependency
31
- name: sourcify
28
+ name: parser
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
- version: 0.6.0.rc2
33
+ version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
- version: 0.6.0.rc2
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: unparser
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
46
55
  - !ruby/object:Gem::Dependency
47
- name: ruby2ruby
56
+ name: proc_to_ast
48
57
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
58
  requirements:
51
- - - ! '>='
59
+ - - ">="
52
60
  - !ruby/object:Gem::Version
53
61
  version: '0'
54
62
  type: :runtime
55
63
  prerelease: false
56
64
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
65
  requirements:
59
- - - ! '>='
66
+ - - ">="
60
67
  - !ruby/object:Gem::Version
61
68
  version: '0'
62
69
  - !ruby/object:Gem::Dependency
63
70
  name: rake
64
71
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
72
  requirements:
67
- - - ! '>='
73
+ - - ">="
68
74
  - !ruby/object:Gem::Version
69
75
  version: '0'
70
76
  type: :development
71
77
  prerelease: false
72
78
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
79
  requirements:
75
- - - ! '>='
80
+ - - ">="
76
81
  - !ruby/object:Gem::Version
77
82
  version: '0'
78
83
  description: RSpec::Parameterized supports simple parameterized test syntax in rspec.
@@ -82,8 +87,9 @@ executables: []
82
87
  extensions: []
83
88
  extra_rdoc_files: []
84
89
  files:
85
- - .gitignore
86
- - .rspec
90
+ - ".gitignore"
91
+ - ".rspec"
92
+ - ".travis.yml"
87
93
  - Gemfile
88
94
  - LICENSE
89
95
  - README.md
@@ -96,33 +102,26 @@ files:
96
102
  - spec/spec_helper.rb
97
103
  homepage: ''
98
104
  licenses: []
105
+ metadata: {}
99
106
  post_install_message:
100
107
  rdoc_options: []
101
108
  require_paths:
102
109
  - lib
103
110
  required_ruby_version: !ruby/object:Gem::Requirement
104
- none: false
105
111
  requirements:
106
- - - ! '>='
112
+ - - ">="
107
113
  - !ruby/object:Gem::Version
108
114
  version: '0'
109
- segments:
110
- - 0
111
- hash: 502049199
112
115
  required_rubygems_version: !ruby/object:Gem::Requirement
113
- none: false
114
116
  requirements:
115
- - - ! '>='
117
+ - - ">="
116
118
  - !ruby/object:Gem::Version
117
119
  version: '0'
118
- segments:
119
- - 0
120
- hash: 502049199
121
120
  requirements: []
122
121
  rubyforge_project:
123
- rubygems_version: 1.8.23
122
+ rubygems_version: 2.2.0
124
123
  signing_key:
125
- specification_version: 3
124
+ specification_version: 4
126
125
  summary: RSpec::Parameterized supports simple parameterized test syntax in rspec.
127
126
  I was inspired by [udzura's mock](https://gist.github.com/1881139).
128
127
  test_files: