guard-cucumber 2.0.0 → 2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a9e3c1db9b6016e54a5c1bb80af18191b2d50609
4
- data.tar.gz: 3029d06db9f14727600acd964864c0be2d3bc7b0
3
+ metadata.gz: 361015c52734047fccfc7238133810df2db55514
4
+ data.tar.gz: ac2cc0cbc96e3d197566389a852f3d79780e4a6e
5
5
  SHA512:
6
- metadata.gz: a385aa9831a9379e76abc17d85a3f57e94b65a8588675fb06cbaafd7b18e649c0062775c17216b35cff94e7402017e33326270e78928729379508f4ffb85e989
7
- data.tar.gz: 8dcb1740a32f896ae493ef4be25f44e4fe17c99ae9dcbfabe075624b50e2ab186061e4ac11eef64f10982dba0616af0ddd16ec4ff0fb70c5ae843b0598657fa0
6
+ metadata.gz: ede278da59d344250d57f24da1a5bf5c987702ea8b7a07688ad17478f8b5ba578b78d0da482f623870f0dc56f765ef689b82c11c27635e3e2a40aa4198ccf02a
7
+ data.tar.gz: 811749cf80b8acb2eec4a61b533331193f497145a94842c0d9c798c04281992ca534f8c1fb23e6124f84adc2845e1462e6a25edf16953988c5eff9753efc4334
data/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  Guard::Cucumber allows you to automatically run Cucumber features when files are modified.
4
4
 
5
- Tested on MRI Ruby 1.9.3, 2.0.0, 2.1.0 and the latest versions of JRuby.
5
+ Supported Ruby versions are those tested on [Travis CI](https://travis-ci.org/guard/guard-cucumber).
6
+ (NOTE: Any Ruby version earlier than 2.2.5 is outdated and likely insecure).
7
+
6
8
 
7
9
  If you have any questions please join us on our [Google group](http://groups.google.com/group/guard-dev) or on `#guard` (irc.freenode.net).
8
10
 
@@ -11,16 +11,23 @@ module Guard
11
11
  class Cucumber < Plugin
12
12
  attr_accessor :last_failed, :failed_path
13
13
 
14
+ KNOWN_OPTIONS = %w(
15
+ all_after_pass
16
+ all_on_start
17
+ keep_failed
18
+ feature_sets
19
+
20
+ run_all
21
+ focus_on
22
+ notification
23
+ ).map(&:to_sym)
24
+
14
25
  # Initialize Guard::Cucumber.
15
26
  #
16
27
  # @param [Array<Guard::Watcher>] watchers the watchers in the Guard block
17
28
  # @param [Hash] options the options for the Guard
18
- # @option options [String] :cli any arbitrary Cucumber CLI arguments
19
29
  # @option options [Array<String>] :feature_sets a list of non-standard
20
30
  # feature directory/ies
21
- # @option options [Boolean] :bundler use bundler or not
22
- # @option options [Array<String>] :rvm a list of rvm version to use for the
23
- # test
24
31
  # @option options [Boolean] :notification show notifications
25
32
  # @option options [Boolean] :all_after_pass run all features after changed
26
33
  # features pass
@@ -29,8 +36,6 @@ module Guard
29
36
  # pass
30
37
  # @option options [Boolean] :run_all run override any option when running
31
38
  # all specs
32
- # @option options [Boolean] :change_format use a different cucumber format
33
- # when running individual features
34
39
  #
35
40
  def initialize(options = {})
36
41
  super(options)
@@ -39,10 +44,16 @@ module Guard
39
44
  all_after_pass: true,
40
45
  all_on_start: true,
41
46
  keep_failed: true,
42
- cli: "--no-profile --color --format progress --strict",
47
+ cmd_additional_args: "",
43
48
  feature_sets: ["features"]
44
49
  }.update(options)
45
50
 
51
+ unknown_options = @options.keys - KNOWN_OPTIONS
52
+ unknown_options.each do |unknown|
53
+ msg = "Unknown guard-cucumber option: #{unknown.inspect}"
54
+ Guard::Compat::UI.warning(msg)
55
+ end
56
+
46
57
  @last_failed = false
47
58
  @failed_paths = []
48
59
  end
@@ -61,13 +72,13 @@ module Guard
61
72
  #
62
73
  def run_all
63
74
  opts = options.merge(options[:run_all] || {})
64
- opts.merge!(message: "Running all features")
75
+ opts[:message] = "Running all features"
65
76
  passed = Runner.run(options[:feature_sets], opts)
66
77
 
67
78
  if passed
68
79
  @failed_paths = []
69
- else
70
- @failed_paths = read_failed_features if @options[:keep_failed]
80
+ elsif @options[:keep_failed]
81
+ @failed_paths = read_failed_features
71
82
  end
72
83
 
73
84
  @last_failed = !passed
@@ -93,12 +104,9 @@ module Guard
93
104
  paths = Inspector.clean(paths, options[:feature_sets])
94
105
 
95
106
  options = @options
96
- if @options[:change_format]
97
- options = change_format(@options[:change_format])
98
- end
99
107
 
100
108
  msg = "Running all features"
101
- options.merge!(message: msg) if paths.include?("features")
109
+ options[:message] = msg if paths.include?("features")
102
110
 
103
111
  _run(paths, options)
104
112
  end
@@ -121,23 +129,6 @@ module Guard
121
129
  failed
122
130
  end
123
131
 
124
- # Change the `--format` cli option.
125
- #
126
- # @param [String] format the new format
127
- # @return [Hash] the new options
128
- #
129
- def change_format(format)
130
- cli_parts = @options[:cli].split(" ")
131
- cli_parts.each_with_index do |part, index|
132
- if part == "--format" && cli_parts[index + 2] != "--out"
133
- cli_parts[index + 1] = format
134
- end
135
- end
136
- @options.merge(cli: cli_parts.join(" "))
137
- end
138
-
139
- private
140
-
141
132
  def _run(paths, options)
142
133
  if Runner.run(paths, options)
143
134
  # clean failed paths memory
@@ -56,7 +56,7 @@ module Guard
56
56
  # @return [Array<String>] the valid files
57
57
  #
58
58
  def cucumber_files(feature_sets)
59
- glob = "#{ feature_sets.join(',') }/**/*.feature"
59
+ glob = "#{feature_sets.join(',')}/**/*.feature"
60
60
  @cucumber_files ||= Dir.glob(glob)
61
61
  end
62
62
 
@@ -65,7 +65,7 @@ module Guard
65
65
  #
66
66
  # @param [Cucumber::Ast::FeatureElement] feature_element
67
67
  #
68
- def before_feature_element(feature_element)
68
+ def before_feature_element(_feature_element)
69
69
  @rerun = false
70
70
  # TODO: show feature element name instead?
71
71
  # @feature = feature_element.name
@@ -96,7 +96,7 @@ module Guard
96
96
  return unless [:failed, :pending, :undefined].index(status)
97
97
 
98
98
  @rerun = true
99
- step_name = step_match.format_args(lambda { |param| "*#{ param }*" })
99
+ step_name = step_match.format_args(lambda { |param| "*#{param}*" })
100
100
 
101
101
  options = { title: @feature.name, image: icon_for(status) }
102
102
  Guard::Compat::UI.notify(step_name, options)
@@ -14,11 +14,7 @@ module Guard
14
14
  # @param [Hash] options the options for the execution
15
15
  # @option options [Array<String>] :feature_sets a list of non-standard
16
16
  # feature directory/ies
17
- # @option options [Boolean] :bundler use bundler or not
18
- # @option options [Array<String>] :rvm a list of rvm version to use for
19
- # the test
20
17
  # @option options [Boolean] :notification show notifications
21
- # @option options [String] :command_prefix allows adding an additional
22
18
  # prefix to the cucumber command. Ideal for running xvfb-run for
23
19
  # terminal only cucumber tests.
24
20
  # @return [Boolean] the status of the execution
@@ -48,11 +44,7 @@ module Guard
48
44
  #
49
45
  # @param [Array<String>] paths the feature files or directories
50
46
  # @param [Hash] options the options for the execution
51
- # @option options [Boolean] :bundler use bundler or not
52
- # @option options [Array<String>] :rvm a list of rvm version to use for
53
- # the test
54
47
  # @option options [Boolean] :notification show notifications
55
- # @option options [String] :command_prefix allows adding an additional
56
48
  # prefix to the cucumber command. Ideal for running xvfb-run for
57
49
  # terminal only cucumber tests.
58
50
  # @return [String] the Cucumber command
@@ -82,11 +74,11 @@ module Guard
82
74
  formatter_path = File.join(this_dir, "notification_formatter.rb")
83
75
  notification_formatter_path = File.expand_path(formatter_path)
84
76
 
85
- cmd << "--require #{ notification_formatter_path }"
77
+ cmd << "--require #{notification_formatter_path}"
86
78
  cmd << "--format Guard::Cucumber::NotificationFormatter"
87
- cmd << "--out #{ null_device }"
79
+ cmd << "--out #{null_device}"
88
80
  cmd << (options[:feature_sets] || ["features"]).map do |path|
89
- "--require #{ path }"
81
+ "--require #{path}"
90
82
  end.join(" ")
91
83
  end
92
84
 
@@ -1,6 +1,6 @@
1
1
  guard "cucumber" do
2
2
  watch(%r{^features/.+\.feature$})
3
- watch(%r{^features/support/.+$}) { "features" }
3
+ watch(%r{^features/support/.+$}) { "features" }
4
4
 
5
5
  watch(%r{^features/step_definitions/(.+)_steps\.rb$}) do |m|
6
6
  Dir[File.join("**/#{m[1]}.feature")][0] || "features"
@@ -1,6 +1,6 @@
1
1
  module Guard
2
2
  module CucumberVersion
3
3
  # Guard::Cucumber version that is used for the Gem specification
4
- VERSION = "2.0.0"
4
+ VERSION = "2.1.0".freeze
5
5
  end
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: guard-cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cezary Baginski
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-11-10 00:00:00.000000000 Z
12
+ date: 2016-04-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: guard-compat
@@ -103,8 +103,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: 1.3.6
104
104
  requirements: []
105
105
  rubyforge_project:
106
- rubygems_version: 2.4.5
106
+ rubygems_version: 2.5.1
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: Guard plugin for Cucumber
110
110
  test_files: []
111
+ has_rdoc: