site_prism 4.0.1 → 4.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de1db2cfa8b40510768bbea0bee96e548ae949149428d669e1a038c83e2b7f8d
4
- data.tar.gz: 3862848b777a9fbafb8c1640df914313b6deac6da942a3859ff2dfe6dbafb214
3
+ metadata.gz: 31d906cda08dd376f6e81fe3ed760b954cf172d2037dcee25d91c01b3b8ace24
4
+ data.tar.gz: aefc0ed612cf57548101505e46c92845ef9fa2f7482b23e5d6b38cc7c37cf9f7
5
5
  SHA512:
6
- metadata.gz: 8deff2edc00b2b4c0fab86c96e10bc184ed2afc8276b7daf9f69b97a9f7ab4b105ece138f6901456d76e57d508f546971f0262e6cec90787e64ea89bac904047
7
- data.tar.gz: 505eb15872469490ab314497737e04eda896f14e7b98c631efae658d42eedb09d8a8aefa53fd5d845fa0a11936951aaf5cd9e6bc99563b4f454251eb212126d9
6
+ metadata.gz: 9eda5c088201fe6055d67d92cdd3a5f08a90ffe9ccbd2788ac1b4da6e6a0dff32e000c59819e113b4091fc33d2c38d875c9b3d36bd4d2dc549d42d4e1f071ac3
7
+ data.tar.gz: 5f926bac135af87939fc52ce5d110dd806ed7e3708bad8b885670a71e75065057d58de506547389ac11f2216ffcc043031262c4eeb5d11697ff38f114d1685f9
data/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2011-2022, The SitePrism team
1
+ Copyright (c) 2011-2023, The SitePrism team
2
2
 
3
3
  All rights reserved.
4
4
 
@@ -39,7 +39,7 @@ module SitePrism
39
39
  #
40
40
  # @return [Array]
41
41
  def elements_present
42
- _mapped_items.select { |name| there?(name) }
42
+ elements_to_check.select { |name| there?(name) }
43
43
  end
44
44
 
45
45
  # Returns each element that is not currently present inside the scope being tested
@@ -52,20 +52,7 @@ module SitePrism
52
52
  private
53
53
 
54
54
  def elements_to_check
55
- if _expected_items
56
- SitePrism.logger.debug('Expected Items has been set.')
57
- _mapped_items.select { |name| _expected_items.include?(name) }
58
- else
59
- _mapped_items
60
- end
61
- end
62
-
63
- def _mapped_items
64
- self.class.mapped_items.values.flatten.uniq
65
- end
66
-
67
- def _expected_items
68
- self.class.expected_items
55
+ SitePrism::AllThere::ExpectedItems.new(self).send(:mapped_checklist)
69
56
  end
70
57
 
71
58
  def there?(name)
@@ -22,17 +22,30 @@ module SitePrism
22
22
  private
23
23
 
24
24
  def create_rspec_existence_matchers(matcher, object_method, negated_object_method, warning)
25
- RSpec::Matchers.define(matcher) do |*args|
26
- match { |actual| actual.public_send(object_method, *args) }
25
+ forward = forwarder(object_method)
26
+
27
+ RSpec::Matchers.define(matcher) do |*args, **options|
28
+ match { |actual| forward.call(actual, args, options) }
27
29
  match_when_negated do |actual|
28
- return actual.public_send(negated_object_method, *args) if actual.respond_to?(negated_object_method)
30
+ return forward.call(actual, args, options, negated_object_method) if actual.respond_to?(negated_object_method)
29
31
 
30
32
  SitePrism.logger.debug(warning)
31
- !actual.public_send(object_method, *args)
33
+ !forward.call(actual, args, options)
32
34
  end
33
35
  end
34
36
  end
35
37
 
38
+ def forwarder(object_method)
39
+ lambda do |actual, args, options, method_name = object_method|
40
+ # To support Ruby 2.6. Otherwise methods that expect no arguments would fail with
41
+ # "wrong number of arguments (given 1, expected 0)" because Ruby 2.6 considers `method(**{})` the
42
+ # same as `method({})` (passing the empty Hash as an argument)
43
+ next actual.public_send(method_name, *args) if options.empty?
44
+
45
+ actual.public_send(method_name, *args, **options)
46
+ end
47
+ end
48
+
36
49
  def matcher
37
50
  "have_#{element_name}"
38
51
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SitePrism
4
- VERSION = '4.0.1'
4
+ VERSION = '4.0.3'
5
5
  end
data/lib/site_prism.rb CHANGED
@@ -4,6 +4,7 @@ require 'site_prism/error'
4
4
  require 'site_prism/all_there'
5
5
 
6
6
  require 'addressable/template'
7
+ require 'capybara/dsl'
7
8
  require 'forwardable'
8
9
 
9
10
  require 'site_prism/addressable_url_matcher'
@@ -42,14 +43,10 @@ module SitePrism
42
43
  @logger ||= SitePrism::Logger.new.create
43
44
  end
44
45
 
45
- # `Logger#reopen` was added in Ruby 2.3 - Which is now the minimum version
46
- # for the site_prism gem
46
+ # Configure where you want the output of the site_prism logs to go (Default is $stdout)
47
47
  #
48
- # This writer method allows you to configure where you want the output of
49
- # the site_prism logs to go (Default is $stdout)
50
- #
51
- # example: SitePrism.log_path = 'site_prism.log' would save all
52
- # log messages to `./site_prism.log`
48
+ # To save all logs to a specific output file
49
+ # SitePrism.log_path = 'site_prism.log'
53
50
  def log_path=(logdev)
54
51
  logger.reopen(logdev)
55
52
  end
@@ -67,8 +64,7 @@ module SitePrism
67
64
  end
68
65
 
69
66
  # To query what level is being logged
70
- # SitePrism.log_level
71
- # => :UNKNOWN # By default
67
+ # SitePrism.log_level # => :UNKNOWN # By default
72
68
  def log_level
73
69
  %i[DEBUG INFO WARN ERROR FATAL UNKNOWN][logger.level]
74
70
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: site_prism
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.1
4
+ version: 4.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luke Hill
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-05-11 00:00:00.000000000 Z
12
+ date: 2023-07-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: addressable
@@ -219,7 +219,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
219
219
  - !ruby/object:Gem::Version
220
220
  version: '0'
221
221
  requirements: []
222
- rubygems_version: 3.0.3.1
222
+ rubygems_version: 3.4.13
223
223
  signing_key:
224
224
  specification_version: 4
225
225
  summary: A Page Object Model DSL for Capybara