ae_easy-test 0.0.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 +7 -0
- data/.gitignore +10 -0
- data/.travis.yml +7 -0
- data/.yardopts +1 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +65 -0
- data/LICENSE +21 -0
- data/README.md +16 -0
- data/Rakefile +22 -0
- data/ae_easy-test.gemspec +49 -0
- data/doc/AeEasy.html +117 -0
- data/doc/AeEasy/Core.html +117 -0
- data/doc/AeEasy/Core/Mock.html +115 -0
- data/doc/AeEasy/Core/Mock/FakeExecutor.html +2037 -0
- data/doc/AeEasy/Core/Modk.html +105 -0
- data/doc/AeEasy/Core/Plugin.html +117 -0
- data/doc/AeEasy/Core/Plugin/ExecutorBehavior.html +196 -0
- data/doc/AeEasy/Test.html +616 -0
- data/doc/AeEasy/Test/Helper.html +1721 -0
- data/doc/AeEasy/Test/RecordTask.html +2493 -0
- data/doc/_index.html +237 -0
- data/doc/class_list.html +51 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +58 -0
- data/doc/css/style.css +496 -0
- data/doc/file.README.html +91 -0
- data/doc/file_list.html +56 -0
- data/doc/frames.html +17 -0
- data/doc/index.html +91 -0
- data/doc/js/app.js +292 -0
- data/doc/js/full_list.js +216 -0
- data/doc/js/jquery.js +4 -0
- data/doc/method_list.html +419 -0
- data/doc/top-level-namespace.html +110 -0
- data/lib/ae_easy/test.rb +52 -0
- data/lib/ae_easy/test/helper.rb +224 -0
- data/lib/ae_easy/test/rake.rb +335 -0
- data/lib/ae_easy/test/version.rb +6 -0
- data/lib/ae_easy_override/core.rb +7 -0
- data/lib/ae_easy_override/core/mock.rb +8 -0
- data/lib/ae_easy_override/core/mock/fake_executor.rb +324 -0
- data/lib/ae_easy_override/core/plugin.rb +8 -0
- data/lib/ae_easy_override/core/plugin/executor_behavior.rb +11 -0
- metadata +201 -0
@@ -0,0 +1,324 @@
|
|
1
|
+
module AeEasy
|
2
|
+
module Core
|
3
|
+
module Mock
|
4
|
+
module FakeExecutor
|
5
|
+
# Root input directory.
|
6
|
+
attr_accessor :root_input_dir
|
7
|
+
|
8
|
+
# Current assigned input directory.
|
9
|
+
attr_accessor :input_dir
|
10
|
+
|
11
|
+
# Expand a relative input directory.
|
12
|
+
#
|
13
|
+
# @param [String, nil] dir Relative input directory
|
14
|
+
#
|
15
|
+
# @return [String] Absolute path
|
16
|
+
def expand_relative_input dir
|
17
|
+
return nil if dir.nil?
|
18
|
+
File.expand_path File.join(root_input_dir, dir)
|
19
|
+
end
|
20
|
+
|
21
|
+
# Load data into executor from options or input files.
|
22
|
+
#
|
23
|
+
# @param [Hash] opts ({}) Configuration options.
|
24
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
25
|
+
# directory. The files map as follows (file_name -> variable):
|
26
|
+
# ```
|
27
|
+
# content -> content
|
28
|
+
# page.json -> page
|
29
|
+
# vars.json -> page['vars']
|
30
|
+
# pages.json -> saved_pages
|
31
|
+
# outputs.json -> saved_outputs
|
32
|
+
# ```
|
33
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
34
|
+
# but relative to root input directory (see #root_input_dir).
|
35
|
+
# @option opts [String,nil] :content Content to load. It will override
|
36
|
+
# `content` file from input directory.
|
37
|
+
# @option opts [Hash,nil] :page Page to load. It will override `page.json`
|
38
|
+
# from input directory.
|
39
|
+
# @option opts [Hash,nil] :vars Variables to load. It will override
|
40
|
+
# `vars.json` from input directory.
|
41
|
+
# @option opts [Hash,nil] :pages Pages to load. It will override
|
42
|
+
# `pages.json` from input directory.
|
43
|
+
# @option opts [Hash,nil] :outputs Outputs to load. It will override
|
44
|
+
# `outputs.json` from input directory.
|
45
|
+
#
|
46
|
+
# @return [FakeExecutor]
|
47
|
+
def load_input opts = {}
|
48
|
+
opts = {
|
49
|
+
rel_dir: nil,
|
50
|
+
input_dir: nil,
|
51
|
+
content: nil,
|
52
|
+
page: nil,
|
53
|
+
vars: nil,
|
54
|
+
pages: nil,
|
55
|
+
outputs: nil
|
56
|
+
}.merge opts
|
57
|
+
dir = opts[:input_dir] || expand_relative_input(opts[:rel_dir]) || self.input_dir
|
58
|
+
|
59
|
+
# Load overrides
|
60
|
+
self.content = opts[:content]
|
61
|
+
new_page = AeEasy::Core.deep_stringify_keys(opts[:page]) unless opts[:page].nil?
|
62
|
+
save_pages opts[:pages] unless opts[:pages].nil?
|
63
|
+
save_outputs opts[:outputs] unless opts[:outputs].nil?
|
64
|
+
vars = nil
|
65
|
+
vars = AeEasy::Core.deep_stringify_keys(opts[:vars]) unless opts[:vars]
|
66
|
+
|
67
|
+
# Load input files
|
68
|
+
unless dir.nil?
|
69
|
+
self.content ||= AeEasy::Test::Helper.load_file(File.join(dir, 'content'))
|
70
|
+
new_page ||= AeEasy::Test::Helper.load_json_file(File.join(dir, 'page.json'))
|
71
|
+
input_pages = AeEasy::Test::Helper.load_json_file(File.join(dir, 'pages.json'))
|
72
|
+
save_pages input_pages unless input_pages.nil?
|
73
|
+
input_outputs = AeEasy::Test::Helper.load_json_file(File.join(dir, 'outputs.json'))
|
74
|
+
save_outputs outputs unless input_outputs.nil?
|
75
|
+
input_vars = AeEasy::Test::Helper.load_json_file(File.join(dir, 'vars.json'))
|
76
|
+
vars ||= input_vars if opts[:page].nil?
|
77
|
+
end
|
78
|
+
|
79
|
+
# Load vars only when no page override and not nil
|
80
|
+
self.page = new_page unless new_page.nil?
|
81
|
+
page['vars'] = vars unless vars.nil?
|
82
|
+
self
|
83
|
+
end
|
84
|
+
|
85
|
+
# Load failed content into executor from options or input files.
|
86
|
+
#
|
87
|
+
# @param [Hash] opts ({}) Configuration options.
|
88
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
89
|
+
# directory. The files map as follows (file_name -> variable):
|
90
|
+
# ```
|
91
|
+
# failed_content.json -> failed_content
|
92
|
+
# ```
|
93
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
94
|
+
# but relative to root input directory (see #root_input_dir).
|
95
|
+
# @option opts [Hash,nil] :failed_content Failed content to load. It
|
96
|
+
# will override `failed_content.json` from input directory.
|
97
|
+
#
|
98
|
+
# @return [FakeExecutor]
|
99
|
+
def load_failed_content opts = {}
|
100
|
+
opts = {
|
101
|
+
rel_dir: nil,
|
102
|
+
input_dir: nil,
|
103
|
+
failed_content: nil
|
104
|
+
}.merge opts
|
105
|
+
dir = opts[:input_dir] || expand_relative_input(opts[:rel_dir]) || self.input_dir
|
106
|
+
|
107
|
+
# Load overrides
|
108
|
+
self.failed_content = opts[:failed_content]
|
109
|
+
|
110
|
+
# Load input files
|
111
|
+
unless dir.nil?
|
112
|
+
self.failed_content ||= AeEasy::Test::Helper.load_file(File.join(dir, 'failed_content.json'))
|
113
|
+
end
|
114
|
+
|
115
|
+
self
|
116
|
+
end
|
117
|
+
|
118
|
+
# Load expected pages into executor from options or input files.
|
119
|
+
#
|
120
|
+
# @param [Hash] opts ({}) Configuration options.
|
121
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
122
|
+
# directory. The files map as follows (file_name -> variable):
|
123
|
+
# ```
|
124
|
+
# expected_pages.json -> saved_pages
|
125
|
+
# ```
|
126
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
127
|
+
# but relative to root input directory (see #root_input_dir).
|
128
|
+
# @option opts [Hash,nil] :pages Pages to load. It will override
|
129
|
+
# `expected_pages.json` from input directory.
|
130
|
+
#
|
131
|
+
# @return [FakeExecutor]
|
132
|
+
def load_expected_pages opts = {}
|
133
|
+
opts = {
|
134
|
+
rel_dir: nil,
|
135
|
+
input_dir: nil,
|
136
|
+
pages: nil
|
137
|
+
}.merge opts
|
138
|
+
dir = opts[:input_dir] || expand_relative_input(opts[:rel_dir]) || self.input_dir
|
139
|
+
|
140
|
+
# Load overrides
|
141
|
+
save_pages opts[:pages] unless opts[:pages].nil?
|
142
|
+
|
143
|
+
# Load input files
|
144
|
+
unless dir.nil?
|
145
|
+
expected_pages = AeEasy::Test::Helper.load_json_file(File.join(dir, 'expected_pages.json'))
|
146
|
+
save_pages expected_pages unless expected_pages.nil?
|
147
|
+
end
|
148
|
+
|
149
|
+
self
|
150
|
+
end
|
151
|
+
|
152
|
+
# Load expected outputs into executor from options or input files.
|
153
|
+
#
|
154
|
+
# @param [Hash] opts ({}) Configuration options.
|
155
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
156
|
+
# directory. The files map as follows (file_name -> variable):
|
157
|
+
# ```
|
158
|
+
# expected_outputs.json -> saved_outputs
|
159
|
+
# ```
|
160
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
161
|
+
# but relative to root input directory (see #root_input_dir).
|
162
|
+
# @option opts [Hash,nil] :outputs Outputs to load. It will override
|
163
|
+
# `expected_outputs.json` from input directory.
|
164
|
+
#
|
165
|
+
# @return [FakeExecutor]
|
166
|
+
def load_expected_outputs opts = {}
|
167
|
+
opts = {
|
168
|
+
rel_dir: nil,
|
169
|
+
input_dir: nil,
|
170
|
+
outputs: nil
|
171
|
+
}.merge opts
|
172
|
+
dir = opts[:input_dir] || expand_relative_input(opts[:rel_dir]) || self.input_dir
|
173
|
+
|
174
|
+
# Load overrides
|
175
|
+
save_outputs opts[:outputs] unless opts[:outputs].nil?
|
176
|
+
|
177
|
+
# Load input files
|
178
|
+
unless dir.nil?
|
179
|
+
expected_outputs = AeEasy::Test::Helper.load_json_file(File.join(dir, 'expected_outputs.json'))
|
180
|
+
save_outputs expected_outputs unless expected_outputs.nil?
|
181
|
+
end
|
182
|
+
|
183
|
+
self
|
184
|
+
end
|
185
|
+
|
186
|
+
# Match expected pages.
|
187
|
+
#
|
188
|
+
# @param [Hash] opts ({}) Configuration options.
|
189
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
190
|
+
# directory. The files map as follows (file_name -> description):
|
191
|
+
# ```
|
192
|
+
# expected_pages.json -> expected pages to compare with saved_pages.
|
193
|
+
# ```
|
194
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
195
|
+
# but relative to root input directory (see #root_input_dir).
|
196
|
+
# @option opts [Hash,nil] :pages Expected pages to load. It will override
|
197
|
+
# `expected_pages.json` from input directory.
|
198
|
+
# @option opts [Array] :skip_fields (nil) Fields to skip on match.
|
199
|
+
# @option opts [Boolean] :default_skip_fields (true) Add `gid` and
|
200
|
+
# `job_id` to the `:skip_fields` list when `true`.
|
201
|
+
#
|
202
|
+
# @return [Hash] A hash with the following fields:
|
203
|
+
# * `[Boolean] match` `true` when match, `false` when diff.
|
204
|
+
# * `[Hash] saved` Non matching saved pages.
|
205
|
+
# * `[Hash] expected` Non matching expected pages.
|
206
|
+
def match_expected_pages opts = {}
|
207
|
+
opts = {
|
208
|
+
rel_dir: nil,
|
209
|
+
input_dir: nil,
|
210
|
+
pages: nil,
|
211
|
+
skip_fields: [],
|
212
|
+
default_skip_fields: true,
|
213
|
+
}.merge opts
|
214
|
+
opts[:input_dir] ||= input_dir
|
215
|
+
|
216
|
+
# Expected context
|
217
|
+
expected = AeEasy::Core::Mock::FakeExecutor.new
|
218
|
+
expected.root_input_dir = root_input_dir
|
219
|
+
expected.load_expected_pages opts
|
220
|
+
|
221
|
+
# Config skip fields
|
222
|
+
skip_fields = opts[:skip_fields]
|
223
|
+
skip_fields += ['gid', 'job_id'] if opts[:default_skip_fields]
|
224
|
+
skip_fields.uniq!
|
225
|
+
|
226
|
+
# Diff
|
227
|
+
diff = AeEasy::Test::Helper.match_collections(
|
228
|
+
saved_pages,
|
229
|
+
expected.saved_pages,
|
230
|
+
skip: skip_fields
|
231
|
+
)
|
232
|
+
{
|
233
|
+
match: diff[:match],
|
234
|
+
saved: diff[:diff][:item_a],
|
235
|
+
expected: diff[:diff][:item_b]
|
236
|
+
}
|
237
|
+
end
|
238
|
+
|
239
|
+
# Match saved pages with expected and verbose diff.
|
240
|
+
# {AeEasy::Test::Helper#match_expected}
|
241
|
+
# @option opts [Array] :log_caller (nil) Log caller. Defaults to method
|
242
|
+
# `caller`.
|
243
|
+
#
|
244
|
+
# @return [Boolean] `true` when pass, else `false`.
|
245
|
+
def should_match_pages opts = {}
|
246
|
+
diff = match_expected_pages opts
|
247
|
+
log_caller = opts[:log_caller] || ([] + caller)
|
248
|
+
unless diff[:match]
|
249
|
+
AeEasy::Test.verbose_match_diff 'pages', diff, log_caller
|
250
|
+
end
|
251
|
+
diff[:match]
|
252
|
+
end
|
253
|
+
|
254
|
+
# Match expected outputs.
|
255
|
+
#
|
256
|
+
# @param [Hash] opts ({}) Configuration options.
|
257
|
+
# @option opts [String,nil] :input_dir (nil) Will load files from this
|
258
|
+
# directory. The files map as follows (file_name -> description):
|
259
|
+
# ```
|
260
|
+
# expected_outputs.json -> expected outputs to compare with saved_outputs.
|
261
|
+
# ```
|
262
|
+
# @option opts [String,nil] :rel_dir (nil) Same as +:input_dir+ option
|
263
|
+
# but relative to root input directory (see #root_input_dir).
|
264
|
+
# @option opts [Hash,nil] :outputs Expected outputs to load. It will
|
265
|
+
# override `expected_outputs.json` from input directory.
|
266
|
+
# @option opts [Array] :skip_fields (nil) Fields to skip on match.
|
267
|
+
# @option opts [Boolean] :default_skip_fields (true) Add `_gid`,
|
268
|
+
# `_job_id` and `_created_at` to the `:skip_fields` list when `true`.
|
269
|
+
#
|
270
|
+
# @return [Hash] A hash with the following structure:
|
271
|
+
# * `[Boolean] match` `true` when match, `false` when diff.
|
272
|
+
# * `[Hash] expected` Non matching expected outputs.
|
273
|
+
# * `[Hash] saved` Non matching saved outputs.
|
274
|
+
def self.match_expected_outputs opts = {}
|
275
|
+
opts = {
|
276
|
+
rel_dir: nil,
|
277
|
+
input_dir: nil,
|
278
|
+
outputs: nil,
|
279
|
+
skip_fields: [],
|
280
|
+
default_skip_fields: true,
|
281
|
+
}.merge opts
|
282
|
+
opts[:input_dir] ||= input_dir
|
283
|
+
|
284
|
+
# Expected context
|
285
|
+
expected = AeEasy::Core::Mock::FakeExecutor.new
|
286
|
+
expected.root_input_dir = root_input_dir
|
287
|
+
expected.load_expected_outputs opts
|
288
|
+
|
289
|
+
# Config skip fields
|
290
|
+
skip_fields = opts[:skip_fields]
|
291
|
+
skip_fields += ['_created_at', '_gid', '_job_id'] if opts[:default_skip_fields]
|
292
|
+
skip_fields.uniq!
|
293
|
+
|
294
|
+
# Diff
|
295
|
+
diff = AeEasy::Test::Helper.match_collections(
|
296
|
+
saved_outputs,
|
297
|
+
expected.saved_outputs,
|
298
|
+
skip: skip_fields
|
299
|
+
)
|
300
|
+
{
|
301
|
+
match: diff[:match],
|
302
|
+
saved: diff[:diff][:item_a],
|
303
|
+
expected: diff[:diff][:item_b]
|
304
|
+
}
|
305
|
+
end
|
306
|
+
|
307
|
+
# Match saved outputs with expected and verbose diff.
|
308
|
+
# {AeEasy::Test::Helper#match_expected_outputs}
|
309
|
+
# @option opts [Array] :log_caller (nil) Log caller. Defaults to method
|
310
|
+
# `caller`.
|
311
|
+
#
|
312
|
+
# @return [Boolean] `true` when pass, else `false`.
|
313
|
+
def should_match_outputs opts = {}
|
314
|
+
diff = match_expected_outputs opts
|
315
|
+
log_caller = opts[:log_caller] || ([] + caller)
|
316
|
+
unless diff[:match]
|
317
|
+
AeEasy::Test::Helper.verbose_match_diff 'outputs', diff, log_caller
|
318
|
+
end
|
319
|
+
diff[:match]
|
320
|
+
end
|
321
|
+
end
|
322
|
+
end
|
323
|
+
end
|
324
|
+
end
|
metadata
ADDED
@@ -0,0 +1,201 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ae_easy-test
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Eduardo Rosales
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-03-08 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: ae_easy-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.1.3
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.1.3
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.16.3
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.16.3
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.11'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '5.11'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.16.1
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.16.1
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: simplecov-console
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.4.2
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.4.2
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: timecop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.9.1
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.9.1
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: byebug
|
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'
|
125
|
+
description: AnswersEngine Easy toolkit test module to support other complex modules.
|
126
|
+
email:
|
127
|
+
- eduardo@datahen.com
|
128
|
+
executables: []
|
129
|
+
extensions: []
|
130
|
+
extra_rdoc_files: []
|
131
|
+
files:
|
132
|
+
- ".gitignore"
|
133
|
+
- ".travis.yml"
|
134
|
+
- ".yardopts"
|
135
|
+
- CODE_OF_CONDUCT.md
|
136
|
+
- Gemfile
|
137
|
+
- Gemfile.lock
|
138
|
+
- LICENSE
|
139
|
+
- README.md
|
140
|
+
- Rakefile
|
141
|
+
- ae_easy-test.gemspec
|
142
|
+
- doc/AeEasy.html
|
143
|
+
- doc/AeEasy/Core.html
|
144
|
+
- doc/AeEasy/Core/Mock.html
|
145
|
+
- doc/AeEasy/Core/Mock/FakeExecutor.html
|
146
|
+
- doc/AeEasy/Core/Modk.html
|
147
|
+
- doc/AeEasy/Core/Plugin.html
|
148
|
+
- doc/AeEasy/Core/Plugin/ExecutorBehavior.html
|
149
|
+
- doc/AeEasy/Test.html
|
150
|
+
- doc/AeEasy/Test/Helper.html
|
151
|
+
- doc/AeEasy/Test/RecordTask.html
|
152
|
+
- doc/_index.html
|
153
|
+
- doc/class_list.html
|
154
|
+
- doc/css/common.css
|
155
|
+
- doc/css/full_list.css
|
156
|
+
- doc/css/style.css
|
157
|
+
- doc/file.README.html
|
158
|
+
- doc/file_list.html
|
159
|
+
- doc/frames.html
|
160
|
+
- doc/index.html
|
161
|
+
- doc/js/app.js
|
162
|
+
- doc/js/full_list.js
|
163
|
+
- doc/js/jquery.js
|
164
|
+
- doc/method_list.html
|
165
|
+
- doc/top-level-namespace.html
|
166
|
+
- lib/ae_easy/test.rb
|
167
|
+
- lib/ae_easy/test/helper.rb
|
168
|
+
- lib/ae_easy/test/rake.rb
|
169
|
+
- lib/ae_easy/test/version.rb
|
170
|
+
- lib/ae_easy_override/core.rb
|
171
|
+
- lib/ae_easy_override/core/mock.rb
|
172
|
+
- lib/ae_easy_override/core/mock/fake_executor.rb
|
173
|
+
- lib/ae_easy_override/core/plugin.rb
|
174
|
+
- lib/ae_easy_override/core/plugin/executor_behavior.rb
|
175
|
+
homepage: https://answersengine.com
|
176
|
+
licenses:
|
177
|
+
- MIT
|
178
|
+
metadata:
|
179
|
+
homepage_uri: https://answersengine.com
|
180
|
+
source_code_uri: https://github.com/answersengine/ae_easy-test
|
181
|
+
post_install_message:
|
182
|
+
rdoc_options: []
|
183
|
+
require_paths:
|
184
|
+
- lib
|
185
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
186
|
+
requirements:
|
187
|
+
- - ">="
|
188
|
+
- !ruby/object:Gem::Version
|
189
|
+
version: 2.2.2
|
190
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
requirements: []
|
196
|
+
rubyforge_project:
|
197
|
+
rubygems_version: 2.7.6
|
198
|
+
signing_key:
|
199
|
+
specification_version: 4
|
200
|
+
summary: AnswersEngine Easy toolkit test module
|
201
|
+
test_files: []
|