spreewald 0.10.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- NTFkNTMyZjljYjI4NDMyNjQ4YWM5ODQ2MWJlNDQ3MzVkYjg1YTZhYw==
5
- data.tar.gz: !binary |-
6
- ZWYyZWRhNjEzNjZmODI2YjkxOGI4ZmRhYTM4NjI5ZjM1MzNlYzM0Zg==
2
+ SHA1:
3
+ metadata.gz: 8b63ce4a7ddbfea13889da72f1eefe2c5a75a605
4
+ data.tar.gz: e1c50a3738d0c9445124097126096cc2196c50ef
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MmMxNzY3ZWYyNmIyN2M2MDc0ODJmZDNiYWE4MTAyMGEwYjE5Nzg0ODZmZjhj
10
- YWUxOThhZWVhMWVmMzVmZDI2NTFlMGFhMGVkZTdmODllMjFjODg3ZjgzOTI1
11
- YjA4NmZjM2ZlZmE5ZWE5OWIwZjZhNjE5ZGZlZjM5OGNkZTYzNWM=
12
- data.tar.gz: !binary |-
13
- MTI1MWY5M2QxNzUyZTY0MDRkYTUwYjc1NDEzMjU2MzAzZDFkNTVkOTFlZTk3
14
- YTM3NzcxODBiNzk4ZjM5YmQwYWQyYzY1MjE0N2FkOTQ4ZGIzMWIyMWE3MTY2
15
- ZDhlNzQ2NTkwNGQ2MjhjOGY5MDVkYzhjZjU2MDZlMDBjYjBkNTU=
6
+ metadata.gz: 1604b9ed7790c7268a6c80930888eb9a0e7ff48118c27f1f4ec348aa34cee27c4db3a74e65f63ca598e6c84dc56fd68165fdd5f8451830ec9c3e7460fec886e6
7
+ data.tar.gz: 9c20207d38e5490159f173aa4d43341a7dbe8c917ea45045ff4b969d907ded3b3252e8d0021536542ba8e0958c5f57c986ad27d946eec6c9744e9acbad8a111c
data/README.md CHANGED
@@ -29,6 +29,16 @@ Alternatively, you can require everything by doing
29
29
  require 'spreewald/all_steps'
30
30
 
31
31
 
32
+ ## Spreewald binary
33
+
34
+ Spreewald comes with a binary that prints a list of all Spreewald steps. It will filter the list by any string you pass it. Example usage:
35
+
36
+ ```bash
37
+ spreewald # lists all steps
38
+ spreewald mail # lists all steps that contain "mail"
39
+ ```
40
+
41
+
32
42
  ## Waiting for page load
33
43
 
34
44
  Spreewald's web steps are all aware that you might run them with a Selenium/Capybara webdriver, and wait for the browser to finish loading the page, if necessary.
@@ -253,7 +263,7 @@ deprecation notice. Decide for yourself whether you want to use them:
253
263
 
254
264
 
255
265
 
256
- * **When ... within (.*[^:])**
266
+ * **When ... within ...**
257
267
 
258
268
  You can append `within [selector]` to any other web step
259
269
 
@@ -366,7 +376,7 @@ deprecation notice. Decide for yourself whether you want to use them:
366
376
  Checks that an input field contains some value (allowing * as wildcard character)
367
377
 
368
378
 
369
- * **Then(the "(.*?)" field should (not )?contain:)**
379
+ * **Then(the "..." field should (not )?contain:)**
370
380
 
371
381
  Checks that a multiline textarea contains some value (allowing * as wildcard character)
372
382
 
@@ -424,7 +434,7 @@ deprecation notice. Decide for yourself whether you want to use them:
424
434
  Checks for the existance of an input field (given its id or label)
425
435
 
426
436
 
427
- * **Then I should( not)? see the (number|amount) ([\-\d,\.]+)( (.*?))?**
437
+ * **Then I should( not)? see the (number|amount) ([\-\d,\.]+)( ...)?**
428
438
 
429
439
  Use this step to test for a number or money amount instead of a simple `Then I should see`
430
440
 
@@ -460,7 +470,7 @@ deprecation notice. Decide for yourself whether you want to use them:
460
470
  Checks for the presence of an option in a select
461
471
 
462
472
 
463
- * **Then I should see '([^']*)'**
473
+ * **Then I should see '...'**
464
474
 
465
475
  Like `Then I should see`, but with single instead of double quotes. In case
466
476
  the expected string contains quotes as well.
data/bin/spreewald ADDED
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/env ruby
2
+ require File.expand_path('../../support/documentation_generator', __FILE__)
3
+
4
+ ORDERED_KINDS = %w[Given When Then]
5
+ heading = 'All Spreewald steps'
6
+ search_string = ARGV.shift
7
+
8
+ # collect
9
+ steps_glob = File.expand_path('../../lib/spreewald/*_steps.rb', __FILE__)
10
+ step_names = `cat #{steps_glob}`.split($/).select { |line| line =~ /^(Given|When|Then)/ }
11
+
12
+ # format
13
+ step_names.map! do |step|
14
+ DocumentationGenerator::StepDefinition.try_and_parse(step).format_definition
15
+ end
16
+
17
+ # sort
18
+ step_names = step_names.sort_by do |step|
19
+ step =~ /^(\w+)(.*)/
20
+ [ORDERED_KINDS.index($1), $2]
21
+ end
22
+
23
+ # filter
24
+ if search_string
25
+ heading << " containing '#{search_string}'"
26
+ step_names = step_names.grep Regexp.new(search_string)
27
+ end
28
+
29
+ # Output
30
+ puts "\e[4;34m\n# #{heading}\e[0m" # blue underline
31
+ puts step_names
@@ -1,3 +1,3 @@
1
1
  module Spreewald
2
- VERSION = '0.10.0'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -38,14 +38,16 @@ module DocumentationGenerator
38
38
  if @definition =~ /AfterStep/
39
39
  @definition[/@\w*/]
40
40
  else
41
+ capture_groups = %w[([^\"]*) ([^"]*) (.*) (.*?) [^"]+ ([^\"]+) ([^']*) ([^/]*) (.+) (.*[^:])]
42
+ capture_groups.map! &Regexp.method(:escape)
43
+
41
44
  @definition.
42
45
  gsub('/^', '').
43
46
  gsub('$/', '').
44
47
  gsub(' ?', ' ').
45
- gsub(/\(\[\^\\?"\](\*|\+)\)/, '...').
46
48
  gsub('(?:|I )', 'I ').
47
49
  gsub('?:', '').
48
- gsub(/\(\.(\+|\*)\)/, '...').
50
+ gsub(Regexp.new(capture_groups.join '|'), '...').
49
51
  gsub(/\\\//, '/')
50
52
  end
51
53
  end
metadata CHANGED
@@ -1,69 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spreewald
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Kraze
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-23 00:00:00.000000000 Z
11
+ date: 2014-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cucumber-rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: cucumber
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: capybara
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  description: A collection of cucumber steps we use in our projects, including steps
56
56
  to check HTML, tables, emails and some utility methods.
57
57
  email:
58
58
  - tobias@kraze.eu
59
- executables: []
59
+ executables:
60
+ - spreewald
60
61
  extensions: []
61
62
  extra_rdoc_files: []
62
63
  files:
63
- - .gitignore
64
+ - ".gitignore"
64
65
  - LICENSE
65
66
  - README.md
66
67
  - Rakefile
68
+ - bin/spreewald
67
69
  - examples/paths.rb
68
70
  - examples/selectors.rb
69
71
  - lib/spreewald.rb
@@ -150,17 +152,17 @@ require_paths:
150
152
  - lib
151
153
  required_ruby_version: !ruby/object:Gem::Requirement
152
154
  requirements:
153
- - - ! '>='
155
+ - - ">="
154
156
  - !ruby/object:Gem::Version
155
157
  version: '0'
156
158
  required_rubygems_version: !ruby/object:Gem::Requirement
157
159
  requirements:
158
- - - ! '>='
160
+ - - ">="
159
161
  - !ruby/object:Gem::Version
160
162
  version: '0'
161
163
  requirements: []
162
164
  rubyforge_project:
163
- rubygems_version: 2.2.1
165
+ rubygems_version: 2.2.2
164
166
  signing_key:
165
167
  specification_version: 4
166
168
  summary: Collection of useful cucumber steps.