screengem 0.9.1 → 0.10.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 +4 -4
- data/CHANGELOG.md +5 -0
- data/README.md +1 -1
- data/images/ScreengemCore.png +0 -0
- data/lib/screengem.rb +0 -6
- data/lib/screengem/actor.rb +3 -16
- data/lib/screengem/configuration.rb +0 -12
- data/lib/screengem/task.rb +0 -1
- data/lib/screengem/version.rb +1 -1
- data/screengem.gemspec +6 -4
- metadata +27 -19
- data/lib/screengem/action.rb +0 -11
- data/lib/screengem/browser_action.rb +0 -7
- data/lib/screengem/concerns/actionable.rb +0 -29
- data/lib/screengem/factories/action_factory.rb +0 -34
- data/lib/screengem/factories/browser_action_factory.rb +0 -14
- data/lib/screengem/factories/standard_action_factory.rb +0 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4be583b646f741befec6d480f450c93a0313ab4a17abf7743437627614398456
|
4
|
+
data.tar.gz: 90fee795ae2efcbfeeb3d9fd206a7d2d38ead7f92dd298b228b25b63e743343c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 005ad3ce9f9e6b657a3fd75f3fabe18d55b76767bad464ba2d6c6c0f81c744c7bf0f02fe16d4ac724f443b3a419b64aea3f0e162877a787ca72d208b24b586e1
|
7
|
+
data.tar.gz: 90497ca01f2134a764dc77e5f665459a340a66d5c7e2e130a97e5f98b36d893b0573445e34e7f2a2e6bc98706395c48dcbb7212352f78ba038a07e17ac5c3f27
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/images/ScreengemCore.png
CHANGED
Binary file
|
data/lib/screengem.rb
CHANGED
@@ -18,15 +18,12 @@ require "screengem/primitive_key"
|
|
18
18
|
require "screengem/dampen_configuration"
|
19
19
|
require "screengem/dampen_configuration_generator"
|
20
20
|
|
21
|
-
require "screengem/concerns/actionable"
|
22
21
|
require "screengem/concerns/configurable"
|
23
22
|
require "screengem/concerns/dampenable"
|
24
23
|
require "screengem/concerns/executable"
|
25
24
|
|
26
25
|
require "screengem/dsl"
|
27
26
|
|
28
|
-
require "screengem/action"
|
29
|
-
require "screengem/browser_action"
|
30
27
|
require "screengem/question"
|
31
28
|
require "screengem/task"
|
32
29
|
|
@@ -35,9 +32,6 @@ require "screengem/actor"
|
|
35
32
|
|
36
33
|
require "screengem/factories/factory_creation_error"
|
37
34
|
|
38
|
-
require "screengem/factories/action_factory"
|
39
|
-
require "screengem/factories/browser_action_factory"
|
40
|
-
require "screengem/factories/standard_action_factory"
|
41
35
|
require "screengem/factories/question_factory"
|
42
36
|
require "screengem/factories/task_factory"
|
43
37
|
|
data/lib/screengem/actor.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module Screengem
|
2
2
|
#
|
3
|
-
# Mixin that allows an actor to perform tasks, ask questions,
|
4
|
-
#
|
3
|
+
# Mixin that allows an actor to perform tasks, ask questions, and to remember and
|
4
|
+
# recall tagged values.
|
5
5
|
#
|
6
6
|
# Return self for those methods that may be chained in the step definition DSL.
|
7
7
|
#
|
8
8
|
# The ability to remember and recall values is used to carry state forward from one
|
9
9
|
# step definition to another (as the preferred alternative to instance variables).
|
10
10
|
#
|
11
|
-
#
|
11
|
+
# Question and task instances (aka primitives) are configured with:
|
12
12
|
# (1) a reference to the actor that is interacting with the primitive
|
13
13
|
# (2) a reference to the screen instance that hosts accessors to the screen elements.
|
14
14
|
#
|
@@ -66,19 +66,6 @@ module Screengem
|
|
66
66
|
self
|
67
67
|
end
|
68
68
|
|
69
|
-
#
|
70
|
-
# Used by an actor to take one or more actions.
|
71
|
-
#
|
72
|
-
# Used to implement tasks. Actions do not appear in step definitions.
|
73
|
-
#
|
74
|
-
def takes_action(*actions)
|
75
|
-
actions.each do |action|
|
76
|
-
action.configure(self, screen)
|
77
|
-
|
78
|
-
action.execute
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
69
|
private
|
83
70
|
|
84
71
|
def incorrect_answer(question)
|
@@ -25,12 +25,6 @@ module Screengem
|
|
25
25
|
# A boolean that specifies that dampening is to be applied.
|
26
26
|
attr_accessor :apply_dampening
|
27
27
|
|
28
|
-
# A boolean that specifies that browser actions are created (used by the ActionFactory).
|
29
|
-
attr_accessor :browser_actions
|
30
|
-
|
31
|
-
# A string that namespaces action classes (used by the ActionFactory).
|
32
|
-
attr_accessor :action_scope
|
33
|
-
|
34
28
|
# A string that namespaces questions classes (used by the QuestionFactory).
|
35
29
|
attr_accessor :question_scope
|
36
30
|
|
@@ -39,11 +33,9 @@ module Screengem
|
|
39
33
|
|
40
34
|
def initialize
|
41
35
|
self.apply_dampening = false
|
42
|
-
self.browser_actions = false
|
43
36
|
|
44
37
|
self.dampen_configuration_root = "default"
|
45
38
|
|
46
|
-
self.action_scope = "Actions"
|
47
39
|
self.question_scope = "Questions"
|
48
40
|
self.task_scope = "Tasks"
|
49
41
|
end
|
@@ -52,10 +44,6 @@ module Screengem
|
|
52
44
|
apply_dampening
|
53
45
|
end
|
54
46
|
|
55
|
-
def browser_actions?
|
56
|
-
browser_actions
|
57
|
-
end
|
58
|
-
|
59
47
|
def dampen_configuration_sample_filename
|
60
48
|
"#{dampen_configuration_filename}.sample"
|
61
49
|
end
|
data/lib/screengem/task.rb
CHANGED
data/lib/screengem/version.rb
CHANGED
data/screengem.gemspec
CHANGED
@@ -27,16 +27,18 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.bindir = "exe"
|
28
28
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
29
|
spec.require_paths = ["lib"]
|
30
|
+
spec.required_ruby_version = "~> 2.5"
|
30
31
|
|
31
32
|
spec.add_runtime_dependency "activesupport", ">= 4.2", "< 6.1"
|
32
33
|
spec.add_runtime_dependency "capybara", ">= 2.18", "< 4.0"
|
33
34
|
spec.add_runtime_dependency "require_all", ">= 2.0", "< 4.0"
|
34
35
|
spec.add_runtime_dependency "rspec-expectations", "~> 3.8"
|
35
|
-
spec.add_runtime_dependency "thor", "~> 0
|
36
|
+
spec.add_runtime_dependency "thor", "~> 1.0"
|
36
37
|
|
37
38
|
spec.add_development_dependency "rake", "~> 13.0"
|
38
|
-
spec.add_development_dependency "rspec", "~> 3.
|
39
|
-
spec.add_development_dependency "rubocop", "~> 0.
|
40
|
-
spec.add_development_dependency "rubocop-
|
39
|
+
spec.add_development_dependency "rspec", "~> 3.9"
|
40
|
+
spec.add_development_dependency "rubocop", "~> 0.79"
|
41
|
+
spec.add_development_dependency "rubocop-performance", "~> 1.5"
|
42
|
+
spec.add_development_dependency "rubocop-rspec", "~> 1.37"
|
41
43
|
spec.add_development_dependency "simplecov", "~> 0.17"
|
42
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: screengem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alistair McKinnell
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -90,14 +90,14 @@ dependencies:
|
|
90
90
|
requirements:
|
91
91
|
- - "~>"
|
92
92
|
- !ruby/object:Gem::Version
|
93
|
-
version: '0
|
93
|
+
version: '1.0'
|
94
94
|
type: :runtime
|
95
95
|
prerelease: false
|
96
96
|
version_requirements: !ruby/object:Gem::Requirement
|
97
97
|
requirements:
|
98
98
|
- - "~>"
|
99
99
|
- !ruby/object:Gem::Version
|
100
|
-
version: '0
|
100
|
+
version: '1.0'
|
101
101
|
- !ruby/object:Gem::Dependency
|
102
102
|
name: rake
|
103
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,42 +118,56 @@ dependencies:
|
|
118
118
|
requirements:
|
119
119
|
- - "~>"
|
120
120
|
- !ruby/object:Gem::Version
|
121
|
-
version: '3.
|
121
|
+
version: '3.9'
|
122
122
|
type: :development
|
123
123
|
prerelease: false
|
124
124
|
version_requirements: !ruby/object:Gem::Requirement
|
125
125
|
requirements:
|
126
126
|
- - "~>"
|
127
127
|
- !ruby/object:Gem::Version
|
128
|
-
version: '3.
|
128
|
+
version: '3.9'
|
129
129
|
- !ruby/object:Gem::Dependency
|
130
130
|
name: rubocop
|
131
131
|
requirement: !ruby/object:Gem::Requirement
|
132
132
|
requirements:
|
133
133
|
- - "~>"
|
134
134
|
- !ruby/object:Gem::Version
|
135
|
-
version: '0.
|
135
|
+
version: '0.79'
|
136
136
|
type: :development
|
137
137
|
prerelease: false
|
138
138
|
version_requirements: !ruby/object:Gem::Requirement
|
139
139
|
requirements:
|
140
140
|
- - "~>"
|
141
141
|
- !ruby/object:Gem::Version
|
142
|
-
version: '0.
|
142
|
+
version: '0.79'
|
143
|
+
- !ruby/object:Gem::Dependency
|
144
|
+
name: rubocop-performance
|
145
|
+
requirement: !ruby/object:Gem::Requirement
|
146
|
+
requirements:
|
147
|
+
- - "~>"
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: '1.5'
|
150
|
+
type: :development
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
requirements:
|
154
|
+
- - "~>"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '1.5'
|
143
157
|
- !ruby/object:Gem::Dependency
|
144
158
|
name: rubocop-rspec
|
145
159
|
requirement: !ruby/object:Gem::Requirement
|
146
160
|
requirements:
|
147
161
|
- - "~>"
|
148
162
|
- !ruby/object:Gem::Version
|
149
|
-
version: '1.
|
163
|
+
version: '1.37'
|
150
164
|
type: :development
|
151
165
|
prerelease: false
|
152
166
|
version_requirements: !ruby/object:Gem::Requirement
|
153
167
|
requirements:
|
154
168
|
- - "~>"
|
155
169
|
- !ruby/object:Gem::Version
|
156
|
-
version: '1.
|
170
|
+
version: '1.37'
|
157
171
|
- !ruby/object:Gem::Dependency
|
158
172
|
name: simplecov
|
159
173
|
requirement: !ruby/object:Gem::Requirement
|
@@ -193,13 +207,10 @@ files:
|
|
193
207
|
- exe/screengem
|
194
208
|
- images/ScreengemCore.png
|
195
209
|
- lib/screengem.rb
|
196
|
-
- lib/screengem/action.rb
|
197
210
|
- lib/screengem/actor.rb
|
198
211
|
- lib/screengem/actor_memory.rb
|
199
212
|
- lib/screengem/automatic_visit.rb
|
200
|
-
- lib/screengem/browser_action.rb
|
201
213
|
- lib/screengem/cli.rb
|
202
|
-
- lib/screengem/concerns/actionable.rb
|
203
214
|
- lib/screengem/concerns/configurable.rb
|
204
215
|
- lib/screengem/concerns/dampenable.rb
|
205
216
|
- lib/screengem/concerns/executable.rb
|
@@ -207,11 +218,8 @@ files:
|
|
207
218
|
- lib/screengem/dampen_configuration.rb
|
208
219
|
- lib/screengem/dampen_configuration_generator.rb
|
209
220
|
- lib/screengem/dsl.rb
|
210
|
-
- lib/screengem/factories/action_factory.rb
|
211
|
-
- lib/screengem/factories/browser_action_factory.rb
|
212
221
|
- lib/screengem/factories/factory_creation_error.rb
|
213
222
|
- lib/screengem/factories/question_factory.rb
|
214
|
-
- lib/screengem/factories/standard_action_factory.rb
|
215
223
|
- lib/screengem/factories/task_factory.rb
|
216
224
|
- lib/screengem/incorrect_answer.rb
|
217
225
|
- lib/screengem/primitive_key.rb
|
@@ -237,16 +245,16 @@ require_paths:
|
|
237
245
|
- lib
|
238
246
|
required_ruby_version: !ruby/object:Gem::Requirement
|
239
247
|
requirements:
|
240
|
-
- - "
|
248
|
+
- - "~>"
|
241
249
|
- !ruby/object:Gem::Version
|
242
|
-
version: '
|
250
|
+
version: '2.5'
|
243
251
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
252
|
requirements:
|
245
253
|
- - ">="
|
246
254
|
- !ruby/object:Gem::Version
|
247
255
|
version: '0'
|
248
256
|
requirements: []
|
249
|
-
rubygems_version: 3.
|
257
|
+
rubygems_version: 3.1.2
|
250
258
|
signing_key:
|
251
259
|
specification_version: 4
|
252
260
|
summary: Ruby implementation of the Screengem Pattern.
|
data/lib/screengem/action.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module Screengem
|
2
|
-
#
|
3
|
-
# Concern that adds the ability to create actions.
|
4
|
-
#
|
5
|
-
module Actionable
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
def action
|
9
|
-
@action ||= action_factory
|
10
|
-
end
|
11
|
-
|
12
|
-
private
|
13
|
-
|
14
|
-
#
|
15
|
-
# Choose the specified action factory. Default to the standard action factory.
|
16
|
-
#
|
17
|
-
def action_factory
|
18
|
-
if browser_factory?
|
19
|
-
Screengem::Factories::BrowserActionFactory.instance
|
20
|
-
else
|
21
|
-
Screengem::Factories::StandardActionFactory.instance
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def browser_factory?
|
26
|
-
Screengem.configuration.browser_actions?
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,34 +0,0 @@
|
|
1
|
-
module Screengem
|
2
|
-
module Factories
|
3
|
-
#
|
4
|
-
# Makes actions available to tasks.
|
5
|
-
#
|
6
|
-
class ActionFactory < BasicObject
|
7
|
-
def method_missing(action_name, *args) # rubocop:disable Style/MethodMissingSuper
|
8
|
-
action_class_name = raw_action_class_name(action_name).camelize
|
9
|
-
action_class = "#{action_scope}::#{action_class_name}".constantize
|
10
|
-
|
11
|
-
action_class.new(*args)
|
12
|
-
rescue => e
|
13
|
-
ActionError.new(<<~MSG)
|
14
|
-
Unable to create action: '#{action_class_name}'.
|
15
|
-
Details: #{e.message}
|
16
|
-
MSG
|
17
|
-
end
|
18
|
-
|
19
|
-
def respond_to_missing?(_action_name, *)
|
20
|
-
true
|
21
|
-
end
|
22
|
-
|
23
|
-
class ActionError < ::Screengem::Action
|
24
|
-
include FactoryCreationError
|
25
|
-
end
|
26
|
-
|
27
|
-
private
|
28
|
-
|
29
|
-
def action_scope
|
30
|
-
@action_scope ||= ::Screengem.configuration.action_scope
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Screengem
|
2
|
-
module Factories
|
3
|
-
#
|
4
|
-
# Makes browser actions available.
|
5
|
-
#
|
6
|
-
class BrowserActionFactory < Screengem::Factories::ActionFactory
|
7
|
-
include ::Singleton
|
8
|
-
|
9
|
-
def raw_action_class_name(action_name)
|
10
|
-
"#{action_name}_action_browser"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
module Screengem
|
2
|
-
module Factories
|
3
|
-
#
|
4
|
-
# Makes standard actions available.
|
5
|
-
#
|
6
|
-
class StandardActionFactory < Screengem::Factories::ActionFactory
|
7
|
-
include ::Singleton
|
8
|
-
|
9
|
-
def raw_action_class_name(action_name)
|
10
|
-
"#{action_name}_action"
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|