rspec-parameterized 0.0.9 → 0.1.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.
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: