chop 0.25.2 → 0.27.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.
@@ -0,0 +1,235 @@
1
+ PATH
2
+ remote: ..
3
+ specs:
4
+ chop (0.27.0)
5
+ activerecord
6
+ capybara
7
+ cucumber
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ actioncable (7.0.0)
13
+ actionpack (= 7.0.0)
14
+ activesupport (= 7.0.0)
15
+ nio4r (~> 2.0)
16
+ websocket-driver (>= 0.6.1)
17
+ actionmailbox (7.0.0)
18
+ actionpack (= 7.0.0)
19
+ activejob (= 7.0.0)
20
+ activerecord (= 7.0.0)
21
+ activestorage (= 7.0.0)
22
+ activesupport (= 7.0.0)
23
+ mail (>= 2.7.1)
24
+ actionmailer (7.0.0)
25
+ actionpack (= 7.0.0)
26
+ actionview (= 7.0.0)
27
+ activejob (= 7.0.0)
28
+ activesupport (= 7.0.0)
29
+ mail (~> 2.5, >= 2.5.4)
30
+ rails-dom-testing (~> 2.0)
31
+ actionpack (7.0.0)
32
+ actionview (= 7.0.0)
33
+ activesupport (= 7.0.0)
34
+ rack (~> 2.0, >= 2.2.0)
35
+ rack-test (>= 0.6.3)
36
+ rails-dom-testing (~> 2.0)
37
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
38
+ actiontext (7.0.0)
39
+ actionpack (= 7.0.0)
40
+ activerecord (= 7.0.0)
41
+ activestorage (= 7.0.0)
42
+ activesupport (= 7.0.0)
43
+ globalid (>= 0.6.0)
44
+ nokogiri (>= 1.8.5)
45
+ actionview (7.0.0)
46
+ activesupport (= 7.0.0)
47
+ builder (~> 3.1)
48
+ erubi (~> 1.4)
49
+ rails-dom-testing (~> 2.0)
50
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
51
+ activejob (7.0.0)
52
+ activesupport (= 7.0.0)
53
+ globalid (>= 0.3.6)
54
+ activemodel (7.0.0)
55
+ activesupport (= 7.0.0)
56
+ activerecord (7.0.0)
57
+ activemodel (= 7.0.0)
58
+ activesupport (= 7.0.0)
59
+ activestorage (7.0.0)
60
+ actionpack (= 7.0.0)
61
+ activejob (= 7.0.0)
62
+ activerecord (= 7.0.0)
63
+ activesupport (= 7.0.0)
64
+ marcel (~> 1.0)
65
+ mini_mime (>= 1.1.0)
66
+ activesupport (7.0.0)
67
+ concurrent-ruby (~> 1.0, >= 1.0.2)
68
+ i18n (>= 1.6, < 2)
69
+ minitest (>= 5.1)
70
+ tzinfo (~> 2.0)
71
+ addressable (2.8.0)
72
+ public_suffix (>= 2.0.2, < 5.0)
73
+ appraisal (2.4.1)
74
+ bundler
75
+ rake
76
+ thor (>= 0.14.0)
77
+ builder (3.2.4)
78
+ byebug (11.1.3)
79
+ capybara (3.36.0)
80
+ addressable
81
+ matrix
82
+ mini_mime (>= 0.1.3)
83
+ nokogiri (~> 1.8)
84
+ rack (>= 1.6.0)
85
+ rack-test (>= 0.6.3)
86
+ regexp_parser (>= 1.5, < 3.0)
87
+ xpath (~> 3.2)
88
+ cliver (0.3.2)
89
+ concurrent-ruby (1.1.9)
90
+ crass (1.0.6)
91
+ cucumber (7.1.0)
92
+ builder (~> 3.2, >= 3.2.4)
93
+ cucumber-core (~> 10.1, >= 10.1.0)
94
+ cucumber-create-meta (~> 6.0, >= 6.0.1)
95
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
96
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
97
+ cucumber-html-formatter (~> 17.0, >= 17.0.0)
98
+ cucumber-messages (~> 17.1, >= 17.1.1)
99
+ cucumber-wire (~> 6.2, >= 6.2.0)
100
+ diff-lcs (~> 1.4, >= 1.4.4)
101
+ mime-types (~> 3.3, >= 3.3.1)
102
+ multi_test (~> 0.1, >= 0.1.2)
103
+ sys-uname (~> 1.2, >= 1.2.2)
104
+ cucumber-core (10.1.0)
105
+ cucumber-gherkin (~> 22.0, >= 22.0.0)
106
+ cucumber-messages (~> 17.1, >= 17.1.1)
107
+ cucumber-tag-expressions (~> 4.0, >= 4.0.2)
108
+ cucumber-create-meta (6.0.4)
109
+ cucumber-messages (~> 17.1, >= 17.1.1)
110
+ sys-uname (~> 1.2, >= 1.2.2)
111
+ cucumber-cucumber-expressions (14.0.0)
112
+ cucumber-gherkin (22.0.0)
113
+ cucumber-messages (~> 17.1, >= 17.1.1)
114
+ cucumber-html-formatter (17.0.0)
115
+ cucumber-messages (~> 17.1, >= 17.1.0)
116
+ cucumber-messages (17.1.1)
117
+ cucumber-tag-expressions (4.1.0)
118
+ cucumber-wire (6.2.0)
119
+ cucumber-core (~> 10.1, >= 10.1.0)
120
+ cucumber-cucumber-expressions (~> 14.0, >= 14.0.0)
121
+ cucumber-messages (~> 17.1, >= 17.1.1)
122
+ cuprite (0.13)
123
+ capybara (>= 2.1, < 4)
124
+ ferrum (~> 0.11.0)
125
+ diff-lcs (1.5.0)
126
+ erubi (1.10.0)
127
+ ferrum (0.11)
128
+ addressable (~> 2.5)
129
+ cliver (~> 0.3)
130
+ concurrent-ruby (~> 1.1)
131
+ websocket-driver (>= 0.6, < 0.8)
132
+ ffi (1.15.4)
133
+ globalid (1.0.0)
134
+ activesupport (>= 5.0)
135
+ i18n (1.8.11)
136
+ concurrent-ruby (~> 1.0)
137
+ loofah (2.13.0)
138
+ crass (~> 1.0.2)
139
+ nokogiri (>= 1.5.9)
140
+ mail (2.7.1)
141
+ mini_mime (>= 0.1.1)
142
+ marcel (1.0.2)
143
+ matrix (0.4.2)
144
+ method_source (1.0.0)
145
+ mime-types (3.4.1)
146
+ mime-types-data (~> 3.2015)
147
+ mime-types-data (3.2021.1115)
148
+ mini_mime (1.1.2)
149
+ mini_portile2 (2.6.1)
150
+ minitest (5.15.0)
151
+ multi_test (0.1.2)
152
+ nio4r (2.5.8)
153
+ nokogiri (1.12.5)
154
+ mini_portile2 (~> 2.6.1)
155
+ racc (~> 1.4)
156
+ public_suffix (4.0.6)
157
+ racc (1.6.0)
158
+ rack (2.2.3)
159
+ rack-test (1.1.0)
160
+ rack (>= 1.0, < 3)
161
+ rails (7.0.0)
162
+ actioncable (= 7.0.0)
163
+ actionmailbox (= 7.0.0)
164
+ actionmailer (= 7.0.0)
165
+ actionpack (= 7.0.0)
166
+ actiontext (= 7.0.0)
167
+ actionview (= 7.0.0)
168
+ activejob (= 7.0.0)
169
+ activemodel (= 7.0.0)
170
+ activerecord (= 7.0.0)
171
+ activestorage (= 7.0.0)
172
+ activesupport (= 7.0.0)
173
+ bundler (>= 1.15.0)
174
+ railties (= 7.0.0)
175
+ rails-dom-testing (2.0.3)
176
+ activesupport (>= 4.2.0)
177
+ nokogiri (>= 1.6)
178
+ rails-html-sanitizer (1.4.2)
179
+ loofah (~> 2.3)
180
+ railties (7.0.0)
181
+ actionpack (= 7.0.0)
182
+ activesupport (= 7.0.0)
183
+ method_source
184
+ rake (>= 12.2)
185
+ thor (~> 1.0)
186
+ zeitwerk (~> 2.5)
187
+ rake (13.0.6)
188
+ regexp_parser (2.2.0)
189
+ rspec (3.10.0)
190
+ rspec-core (~> 3.10.0)
191
+ rspec-expectations (~> 3.10.0)
192
+ rspec-mocks (~> 3.10.0)
193
+ rspec-core (3.10.1)
194
+ rspec-support (~> 3.10.0)
195
+ rspec-expectations (3.10.1)
196
+ diff-lcs (>= 1.2.0, < 2.0)
197
+ rspec-support (~> 3.10.0)
198
+ rspec-mocks (3.10.2)
199
+ diff-lcs (>= 1.2.0, < 2.0)
200
+ rspec-support (~> 3.10.0)
201
+ rspec-support (3.10.3)
202
+ slim (4.1.0)
203
+ temple (>= 0.7.6, < 0.9)
204
+ tilt (>= 2.0.6, < 2.1)
205
+ sys-uname (1.2.2)
206
+ ffi (~> 1.1)
207
+ temple (0.8.2)
208
+ thor (1.1.0)
209
+ tilt (2.0.10)
210
+ tzinfo (2.0.4)
211
+ concurrent-ruby (~> 1.0)
212
+ webrick (1.7.0)
213
+ websocket-driver (0.7.5)
214
+ websocket-extensions (>= 0.1.0)
215
+ websocket-extensions (0.1.5)
216
+ xpath (3.2.0)
217
+ nokogiri (~> 1.8)
218
+ zeitwerk (2.5.2)
219
+
220
+ PLATFORMS
221
+ ruby
222
+
223
+ DEPENDENCIES
224
+ appraisal
225
+ byebug
226
+ chop!
227
+ cuprite
228
+ rails (~> 7.0.0)
229
+ rake
230
+ rspec
231
+ slim
232
+ webrick
233
+
234
+ BUNDLED WITH
235
+ 2.2.32
data/lib/chop/create.rb CHANGED
@@ -117,12 +117,20 @@ module Chop
117
117
  def file *keys
118
118
  options = extract_options!(keys)
119
119
  path = options.fetch(:path, "features/support/fixtures")
120
+ upload = options.fetch(:upload, false)
120
121
 
121
122
  handle_renames! keys
122
123
 
123
124
  keys.each do |key|
124
125
  field key do |file|
125
- File.open(File.join(path, file)) if file.present?
126
+ if file.present?
127
+ file_path = File.join(path, file)
128
+ if upload
129
+ Rack::Test::UploadedFile.new(file_path)
130
+ else
131
+ File.open(file_path)
132
+ end
133
+ end
126
134
  end
127
135
  end
128
136
  end
@@ -130,6 +138,7 @@ module Chop
130
138
  def files *keys
131
139
  options = extract_options!(keys)
132
140
  path = options.fetch(:path, "features/support/fixtures")
141
+ upload = options.fetch(:upload, false)
133
142
  delimiter = options.fetch(:delimiter, " ")
134
143
 
135
144
  handle_renames! keys
@@ -137,7 +146,12 @@ module Chop
137
146
  keys.each do |key|
138
147
  field key do |paths|
139
148
  paths.split(delimiter).map do |file|
140
- File.open(File.join(path, file))
149
+ file_path = File.join(path, file)
150
+ if upload
151
+ Rack::Test::UploadedFile.new(file_path)
152
+ else
153
+ File.open(file_path)
154
+ end
141
155
  end
142
156
  end
143
157
  end
data/lib/chop/dsl.rb CHANGED
@@ -30,9 +30,9 @@ if defined?(Cucumber::MultilineArgument::DataTable)
30
30
  Chop.create! klass, self, &block
31
31
  end
32
32
 
33
- def diff! other_table="table", options={}, &block
33
+ def diff! other_table="table", **kwargs, &block
34
34
  if other_table.respond_to?(:tag_name) || (other_table.is_a?(String) && !other_table.include?("|"))
35
- Chop.diff! other_table, self, options, &block
35
+ Chop.diff! other_table, self, **kwargs, &block
36
36
  else
37
37
  super
38
38
  end
data/lib/chop/form.rb CHANGED
@@ -185,6 +185,7 @@ module Chop
185
185
  private
186
186
 
187
187
  def file_path
188
+ return nil unless value.present?
188
189
  ::File.expand_path(::File.join(path, value)).tap do |path|
189
190
  ::File.open(path){} # raise Errno::ENOENT if file doesn't exist
190
191
  end
@@ -210,20 +211,21 @@ module Chop
210
211
 
211
212
  def file_paths
212
213
  value.split(" ").map do |filename|
214
+ next nil unless filename.present?
213
215
  ::File.expand_path(::File.join(path, filename)).tap do |path|
214
216
  ::File.open(path){} # raise Errno::ENOENT if file doesn't exist
215
217
  end
216
- end
218
+ end.compact
217
219
  end
218
220
  end
219
221
 
220
- class Range < Field
222
+ class ViaJavascript < Field
221
223
  def matches?
222
- field[:type] == "range"
224
+ %w[time week month range].include?(field[:type])
223
225
  end
224
226
 
225
227
  def fill_in!
226
- session.execute_script("document.getElementById('#{field[:id]}').value = #{value}")
228
+ session.execute_script("document.getElementById('#{field[:id]}').value = '#{value}'")
227
229
  end
228
230
  end
229
231
 
data/lib/chop/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Chop
2
- VERSION = "0.25.2"
2
+ VERSION = "0.27.0"
3
3
  end
data/lib/chop.rb CHANGED
@@ -11,5 +11,9 @@ require "chop/config"
11
11
  module Chop
12
12
  extend DSL
13
13
  extend Config
14
+
15
+ def self.empty_table
16
+ Cucumber::MultilineArgument::DataTable.from([[]])
17
+ end
14
18
  end
15
19
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chop
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.2
4
+ version: 0.27.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Micah Geisel
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-17 00:00:00.000000000 Z
11
+ date: 2022-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -52,20 +52,34 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: appraisal
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rake
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
73
+ - - ">="
60
74
  - !ruby/object:Gem::Version
61
- version: '10.0'
75
+ version: '0'
62
76
  type: :development
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
- - - "~>"
80
+ - - ">="
67
81
  - !ruby/object:Gem::Version
68
- version: '10.0'
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rspec
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +108,20 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: cuprite
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
97
125
  description: Slice and dice your cucumber tables with ease!
98
126
  email:
99
127
  - micah@botandrose.com
@@ -101,9 +129,10 @@ executables: []
101
129
  extensions: []
102
130
  extra_rdoc_files: []
103
131
  files:
132
+ - ".github/workflows/ci.yml"
104
133
  - ".gitignore"
105
134
  - ".rspec"
106
- - ".travis.yml"
135
+ - Appraisals
107
136
  - Gemfile
108
137
  - LICENSE.txt
109
138
  - README.md
@@ -111,6 +140,17 @@ files:
111
140
  - bin/console
112
141
  - bin/setup
113
142
  - chop.gemspec
143
+ - gemfiles/.bundle/config
144
+ - gemfiles/rails_5.1.gemfile
145
+ - gemfiles/rails_5.1.gemfile.lock
146
+ - gemfiles/rails_5.2.gemfile
147
+ - gemfiles/rails_5.2.gemfile.lock
148
+ - gemfiles/rails_6.0.gemfile
149
+ - gemfiles/rails_6.0.gemfile.lock
150
+ - gemfiles/rails_6.1.gemfile
151
+ - gemfiles/rails_6.1.gemfile.lock
152
+ - gemfiles/rails_7.0.gemfile
153
+ - gemfiles/rails_7.0.gemfile.lock
114
154
  - lib/chop.rb
115
155
  - lib/chop/config.rb
116
156
  - lib/chop/create.rb
@@ -141,7 +181,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
141
181
  - !ruby/object:Gem::Version
142
182
  version: '0'
143
183
  requirements: []
144
- rubygems_version: 3.0.3
184
+ rubygems_version: 3.2.32
145
185
  signing_key:
146
186
  specification_version: 4
147
187
  summary: Slice and dice your cucumber tables with ease!
data/.travis.yml DELETED
@@ -1,3 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 2.2.3