right_develop 3.0.3 → 3.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 +4 -4
- data/VERSION +1 -1
- data/lib/right_develop/testing/clients/rest/requests/playback.rb +1 -1
- data/lib/right_develop/testing/recording/config.rb +16 -29
- data/lib/right_develop/testing/recording/metadata.rb +4 -4
- data/lib/right_develop/testing/servers/might_api/app/base.rb +4 -4
- data/lib/right_develop/testing/servers/might_api/lib/config.rb +2 -2
- data/right_develop.gemspec +7 -10
- metadata +11 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75595aa0b043470ce941c74a449e02c91b6b3d0e
|
4
|
+
data.tar.gz: fabf099b71bf1a935e68fa7ffd7f1b0534c2e4fb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a7cb8687f1be119ea4599bb9ca094c92647ae529d8b024745417ae42458f48d2cc6a27e8e949bb4b37e3e5e1f44a653e8e71ed47178acb0c57a6ef9a461767e3
|
7
|
+
data.tar.gz: e1b224843dd49b113263f090608541ef66cee3b8f7e7bc2122b9dae99820991a0feb4b6bd2c9a8bfc99538c4f87ce70af7f01dc53f15388a93ab90f7482f913d
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.0
|
1
|
+
3.1.0
|
@@ -178,7 +178,7 @@ module RightDevelop::Testing::Client::Rest::Request
|
|
178
178
|
file_path = nil
|
179
179
|
end
|
180
180
|
if file_path
|
181
|
-
response_hash = ::Mash.new(::YAML.load_file(file_path))
|
181
|
+
response_hash = RightSupport::Data::Mash.new(::YAML.load_file(file_path))
|
182
182
|
if response_hash[:peer_reset_connection]
|
183
183
|
raise PeerResetConnectionError, 'Connection reset by peer'
|
184
184
|
end
|
@@ -22,7 +22,6 @@
|
|
22
22
|
|
23
23
|
# ancestor
|
24
24
|
require 'right_develop/testing/recording'
|
25
|
-
require 'extlib'
|
26
25
|
require 'json'
|
27
26
|
require 'logger'
|
28
27
|
require 'rack/utils'
|
@@ -43,7 +42,7 @@ module RightDevelop::Testing::Recording
|
|
43
42
|
# value would be ambiguous.
|
44
43
|
STOP_TRAVERSAL_KEY = ''.freeze
|
45
44
|
|
46
|
-
VALID_MODES = ::Mash.new(
|
45
|
+
VALID_MODES = RightSupport::Data::Mash.new(
|
47
46
|
:admin => 'Administrative for changing mode, fixtures, etc. while running.',
|
48
47
|
:echo => 'Echoes request back as response and validates route.',
|
49
48
|
:playback => 'Playback a session for one or more stubbed web services.',
|
@@ -71,7 +70,7 @@ module RightDevelop::Testing::Recording
|
|
71
70
|
def initialize(config_hash, options = nil)
|
72
71
|
# defaults.
|
73
72
|
current_dir = ::Dir.pwd
|
74
|
-
defaults = ::Mash.new(
|
73
|
+
defaults = RightSupport::Data::Mash.new(
|
75
74
|
'fixtures_dir' => ::File.expand_path(FIXTURES_DIR_NAME, current_dir),
|
76
75
|
'log_level' => :info,
|
77
76
|
'log_dir' => ::File.expand_path(LOG_DIR_NAME, current_dir),
|
@@ -89,7 +88,7 @@ module RightDevelop::Testing::Recording
|
|
89
88
|
# another deep merge of any additional options.
|
90
89
|
::RightSupport::Data::HashTools.deep_merge!(config_hash, options)
|
91
90
|
end
|
92
|
-
@config_hash = ::Mash.new
|
91
|
+
@config_hash = RightSupport::Data::Mash.new
|
93
92
|
mode(config_hash['mode'])
|
94
93
|
admin(config_hash['admin'])
|
95
94
|
routes(config_hash['routes'])
|
@@ -178,7 +177,7 @@ module RightDevelop::Testing::Recording
|
|
178
177
|
# normalize routes for efficient usage but keep them separate from
|
179
178
|
# user's config so that .to_hash returns something understandable and
|
180
179
|
# JSONizable/YAMLable.
|
181
|
-
@normalized_routes = value.inject(::Mash.new) do |r, (k, v)|
|
180
|
+
@normalized_routes = value.inject(RightSupport::Data::Mash.new) do |r, (k, v)|
|
182
181
|
r[normalize_route_prefix(k)] = normalize_route_data(k, v)
|
183
182
|
r
|
184
183
|
end
|
@@ -252,11 +251,11 @@ module RightDevelop::Testing::Recording
|
|
252
251
|
if subdir = route_data[:subdir]
|
253
252
|
route_subdir = ::File.expand_path(::File.join(path, '..', subdir))
|
254
253
|
::Dir[::File.join(route_subdir, "**/*#{extension}")].each do |route_config_path|
|
255
|
-
route_config_data = ::Mash.new(::YAML.load_file(route_config_path))
|
254
|
+
route_config_data = RightSupport::Data::Mash.new(::YAML.load_file(route_config_path))
|
256
255
|
filename = ::File.basename(route_config_path)[0..-(extension.length + 1)]
|
257
256
|
hash_path = ::File.dirname(route_config_path)[(route_subdir.length + 1)..-1].split('/')
|
258
257
|
unless current_route_data = ::RightSupport::Data::HashTools.deep_get(route_data, hash_path)
|
259
|
-
current_route_data = ::Mash.new
|
258
|
+
current_route_data = RightSupport::Data::Mash.new
|
260
259
|
::RightSupport::Data::HashTools.deep_set!(route_data, hash_path, current_route_data)
|
261
260
|
end
|
262
261
|
|
@@ -288,19 +287,7 @@ module RightDevelop::Testing::Recording
|
|
288
287
|
#
|
289
288
|
# @return [Object] depends on input type
|
290
289
|
def self.deep_mash(any)
|
291
|
-
|
292
|
-
when Array
|
293
|
-
# traverse arrays
|
294
|
-
any.map { |i| deep_mash(i) }
|
295
|
-
when Hash
|
296
|
-
# mash the hash
|
297
|
-
any.inject(::Mash.new) do |m, (k, v)|
|
298
|
-
m[k] = deep_mash(v)
|
299
|
-
m
|
300
|
-
end
|
301
|
-
else
|
302
|
-
any # whatever
|
303
|
-
end
|
290
|
+
RightSupport::Data::HashTools.deep_mash(any)
|
304
291
|
end
|
305
292
|
|
306
293
|
protected
|
@@ -449,7 +436,7 @@ module RightDevelop::Testing::Recording
|
|
449
436
|
# FIX: don't think there is a need for wildcard qualifiers beyond URI
|
450
437
|
# path (i.e. wildcard matchers) so they are not currently supported.
|
451
438
|
qualifiers_to_data = regex_to_data[regex] ||= {}
|
452
|
-
current_qualifiers = ::Mash.new
|
439
|
+
current_qualifiers = RightSupport::Data::Mash.new
|
453
440
|
if k == STOP_TRAVERSAL_KEY
|
454
441
|
# no qualifiers; stopped after URI path
|
455
442
|
qualifiers_to_data[current_qualifiers] = normalize_route_stop_configuration(position, uri_path + [k], v)
|
@@ -475,8 +462,8 @@ module RightDevelop::Testing::Recording
|
|
475
462
|
end
|
476
463
|
|
477
464
|
# could be multiple qualifiers in a CGI-style string.
|
478
|
-
current_qualifiers = ::Mash.new(current_qualifiers)
|
479
|
-
more_qualifiers = ::Mash.new
|
465
|
+
current_qualifiers = RightSupport::Data::Mash.new(current_qualifiers)
|
466
|
+
more_qualifiers = RightSupport::Data::Mash.new
|
480
467
|
::CGI.unescape(subpath.last).split('&').each do |q|
|
481
468
|
if matched = TYPE_NAME_VALUE_REGEX.match(q)
|
482
469
|
case qualifier_type = matched[1]
|
@@ -507,13 +494,13 @@ module RightDevelop::Testing::Recording
|
|
507
494
|
# not case-sensitive so convert the header keys to snake_case to
|
508
495
|
# match normalized headers from request.
|
509
496
|
if qualifier_type == 'header'
|
510
|
-
qualifier = qualifier.inject(::Mash.new) do |h, (k, v)|
|
497
|
+
qualifier = qualifier.inject(RightSupport::Data::Mash.new) do |h, (k, v)|
|
511
498
|
h[normalize_header_key(k)] = v
|
512
499
|
h
|
513
500
|
end
|
514
501
|
end
|
515
502
|
::RightSupport::Data::HashTools.deep_merge!(
|
516
|
-
more_qualifiers[qualifier_type] ||= ::Mash.new,
|
503
|
+
more_qualifiers[qualifier_type] ||= RightSupport::Data::Mash.new,
|
517
504
|
qualifier)
|
518
505
|
end
|
519
506
|
else
|
@@ -552,7 +539,7 @@ module RightDevelop::Testing::Recording
|
|
552
539
|
raise ConfigError, message
|
553
540
|
end
|
554
541
|
|
555
|
-
route_stop_config.inject(::Mash.new) do |rst, (rst_k, rst_v)|
|
542
|
+
route_stop_config.inject(RightSupport::Data::Mash.new) do |rst, (rst_k, rst_v)|
|
556
543
|
|
557
544
|
# sanity check.
|
558
545
|
unwanted_keys = rst_v.keys.map(&:to_s) - ALLOWED_CONFIG_ACTIONS
|
@@ -564,11 +551,11 @@ module RightDevelop::Testing::Recording
|
|
564
551
|
raise ConfigError, message
|
565
552
|
end
|
566
553
|
|
567
|
-
rst[rst_k] = rst_v.inject(::Mash.new) do |kc, (kc_k, kc_v)|
|
554
|
+
rst[rst_k] = rst_v.inject(RightSupport::Data::Mash.new) do |kc, (kc_k, kc_v)|
|
568
555
|
case kc_k
|
569
556
|
when METADATA_CLASS::TIMEOUTS_KEY
|
570
557
|
# sanity check.
|
571
|
-
kc_v = kc_v.inject(::Mash.new) do |h, (k, v)|
|
558
|
+
kc_v = kc_v.inject(RightSupport::Data::Mash.new) do |h, (k, v)|
|
572
559
|
h[k] = Integer(v)
|
573
560
|
h
|
574
561
|
end
|
@@ -601,7 +588,7 @@ module RightDevelop::Testing::Recording
|
|
601
588
|
end
|
602
589
|
when ::Hash
|
603
590
|
# transform, variables
|
604
|
-
kc_v[:header] = headers.inject(::Mash.new) do |h, (k, v)|
|
591
|
+
kc_v[:header] = headers.inject(RightSupport::Data::Mash.new) do |h, (k, v)|
|
605
592
|
h[normalize_header_key(k)] = v
|
606
593
|
h
|
607
594
|
end
|
@@ -276,7 +276,7 @@ module RightDevelop::Testing::Recording
|
|
276
276
|
#
|
277
277
|
# @return [Mash] types to names to values
|
278
278
|
def compute_typenames_to_values
|
279
|
-
::Mash.new(
|
279
|
+
RightSupport::Data::Mash.new(
|
280
280
|
verb: @verb,
|
281
281
|
query: parse_query_string(@uri.query.to_s),
|
282
282
|
header: @headers,
|
@@ -409,7 +409,7 @@ module RightDevelop::Testing::Recording
|
|
409
409
|
#
|
410
410
|
# @return [Hash] effective route configuration
|
411
411
|
def compute_effective_route_config
|
412
|
-
result = ::Mash.new
|
412
|
+
result = RightSupport::Data::Mash.new
|
413
413
|
if configuration_data = @route_data[MATCHERS_KEY]
|
414
414
|
# the top-level keys are expected to be regular expressions used to
|
415
415
|
# match only the URI path.
|
@@ -768,7 +768,7 @@ module RightDevelop::Testing::Recording
|
|
768
768
|
{}
|
769
769
|
|
770
770
|
# verb and (response-only) http_status are always significant.
|
771
|
-
significant_data = ::Mash.new(verb: @verb)
|
771
|
+
significant_data = RightSupport::Data::Mash.new(verb: @verb)
|
772
772
|
significant_data[:http_status] = @http_status if @http_status
|
773
773
|
|
774
774
|
# headers
|
@@ -819,7 +819,7 @@ module RightDevelop::Testing::Recording
|
|
819
819
|
def copy_if_significant(type, significant, significant_data)
|
820
820
|
if significant_type = significant[type]
|
821
821
|
significant_data[type] = recursive_selective_hash_copy(
|
822
|
-
::Mash.new, @typenames_to_values[type], significant_type)
|
822
|
+
RightSupport::Data::Mash.new, @typenames_to_values[type], significant_type)
|
823
823
|
true
|
824
824
|
else
|
825
825
|
false
|
@@ -34,8 +34,8 @@ module RightDevelop::Testing::Server::MightApi
|
|
34
34
|
|
35
35
|
# Rack (and Skeletor) apps and some known AWS apps only accept dash and
|
36
36
|
# not underscore so ensure the default settings reflect the 80-20 rule.
|
37
|
-
DEFAULT_PROXY_SETTINGS = ::Mash.new(
|
38
|
-
header: ::Mash.new(
|
37
|
+
DEFAULT_PROXY_SETTINGS = RightSupport::Data::Mash.new(
|
38
|
+
header: RightSupport::Data::Mash.new(
|
39
39
|
case: :capitalize,
|
40
40
|
separator: :dash
|
41
41
|
).freeze
|
@@ -322,7 +322,7 @@ module RightDevelop::Testing::Server::MightApi
|
|
322
322
|
if header_data = proxy_data[:header]
|
323
323
|
to_separator = (header_data[:separator] == :underscore) ? '_' : '-'
|
324
324
|
from_separator = (to_separator == '-') ? '_' : '-'
|
325
|
-
proxied = headers.inject(::Mash.new) do |h, (k, v)|
|
325
|
+
proxied = headers.inject(RightSupport::Data::Mash.new) do |h, (k, v)|
|
326
326
|
k = k.to_s
|
327
327
|
case header_data[:case]
|
328
328
|
when nil
|
@@ -342,7 +342,7 @@ module RightDevelop::Testing::Server::MightApi
|
|
342
342
|
end
|
343
343
|
end
|
344
344
|
end
|
345
|
-
proxied || ::Mash.new(headers)
|
345
|
+
proxied || RightSupport::Data::Mash.new(headers)
|
346
346
|
end
|
347
347
|
|
348
348
|
# rack has a convention of newline-delimited header multi-values.
|
@@ -140,8 +140,8 @@ module RightDevelop::Testing::Server::MightApi
|
|
140
140
|
# load request/response pair to validate.
|
141
141
|
request_file_path = ::File.join(requests_dir, path)
|
142
142
|
response_file_path = ::File.join(responses_dir, path)
|
143
|
-
request_data = ::Mash.new(::YAML.load_file(request_file_path))
|
144
|
-
response_data = ::Mash.new(::YAML.load_file(response_file_path))
|
143
|
+
request_data = RightSupport::Data::Mash.new(::YAML.load_file(request_file_path))
|
144
|
+
response_data = RightSupport::Data::Mash.new(::YAML.load_file(response_file_path))
|
145
145
|
|
146
146
|
# if confing contains unreachable (i.e. no available route) files
|
147
147
|
# then that is ignorable.
|
data/right_develop.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: right_develop 3.0
|
5
|
+
# stub: right_develop 3.1.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "right_develop"
|
9
|
-
s.version = "3.0
|
9
|
+
s.version = "3.1.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Tony Spataro"]
|
14
|
-
s.date = "2014-09-
|
14
|
+
s.date = "2014-09-25"
|
15
15
|
s.description = "A toolkit of development tools created by RightScale."
|
16
16
|
s.email = "support@rightscale.com"
|
17
17
|
s.executables = ["right_develop"]
|
@@ -78,19 +78,18 @@ Gem::Specification.new do |s|
|
|
78
78
|
]
|
79
79
|
s.homepage = "https://github.com/rightscale/right_develop"
|
80
80
|
s.licenses = ["MIT"]
|
81
|
-
s.rubygems_version = "2.2.
|
81
|
+
s.rubygems_version = "2.2.0"
|
82
82
|
s.summary = "Reusable dev & test code."
|
83
83
|
|
84
84
|
if s.respond_to? :specification_version then
|
85
85
|
s.specification_version = 4
|
86
86
|
|
87
87
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
88
|
-
s.add_runtime_dependency(%q<right_support>, [">= 2.8.
|
88
|
+
s.add_runtime_dependency(%q<right_support>, ["< 3.0.0", ">= 2.8.31"])
|
89
89
|
s.add_runtime_dependency(%q<builder>, ["~> 3.0"])
|
90
90
|
s.add_runtime_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
|
91
91
|
s.add_runtime_dependency(%q<right_git>, [">= 1.0"])
|
92
92
|
s.add_runtime_dependency(%q<right_aws>, [">= 2.1.0"])
|
93
|
-
s.add_runtime_dependency(%q<extlib>, [">= 0"])
|
94
93
|
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
95
94
|
s.add_development_dependency(%q<rake>, [">= 0.8.7"])
|
96
95
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
|
@@ -99,12 +98,11 @@ Gem::Specification.new do |s|
|
|
99
98
|
s.add_development_dependency(%q<pry>, [">= 0"])
|
100
99
|
s.add_development_dependency(%q<pry-byebug>, [">= 0"])
|
101
100
|
else
|
102
|
-
s.add_dependency(%q<right_support>, [">= 2.8.
|
101
|
+
s.add_dependency(%q<right_support>, ["< 3.0.0", ">= 2.8.31"])
|
103
102
|
s.add_dependency(%q<builder>, ["~> 3.0"])
|
104
103
|
s.add_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
|
105
104
|
s.add_dependency(%q<right_git>, [">= 1.0"])
|
106
105
|
s.add_dependency(%q<right_aws>, [">= 2.1.0"])
|
107
|
-
s.add_dependency(%q<extlib>, [">= 0"])
|
108
106
|
s.add_dependency(%q<rack>, [">= 0"])
|
109
107
|
s.add_dependency(%q<rake>, [">= 0.8.7"])
|
110
108
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
@@ -114,12 +112,11 @@ Gem::Specification.new do |s|
|
|
114
112
|
s.add_dependency(%q<pry-byebug>, [">= 0"])
|
115
113
|
end
|
116
114
|
else
|
117
|
-
s.add_dependency(%q<right_support>, [">= 2.8.
|
115
|
+
s.add_dependency(%q<right_support>, ["< 3.0.0", ">= 2.8.31"])
|
118
116
|
s.add_dependency(%q<builder>, ["~> 3.0"])
|
119
117
|
s.add_dependency(%q<trollop>, ["< 3.0", ">= 1.0"])
|
120
118
|
s.add_dependency(%q<right_git>, [">= 1.0"])
|
121
119
|
s.add_dependency(%q<right_aws>, [">= 2.1.0"])
|
122
|
-
s.add_dependency(%q<extlib>, [">= 0"])
|
123
120
|
s.add_dependency(%q<rack>, [">= 0"])
|
124
121
|
s.add_dependency(%q<rake>, [">= 0.8.7"])
|
125
122
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
metadata
CHANGED
@@ -1,29 +1,35 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_develop
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tony Spataro
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: right_support
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
+
- - "<"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 3.0.0
|
17
20
|
- - ">="
|
18
21
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.8.
|
22
|
+
version: 2.8.31
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
27
|
+
- - "<"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 3.0.0
|
24
30
|
- - ">="
|
25
31
|
- !ruby/object:Gem::Version
|
26
|
-
version: 2.8.
|
32
|
+
version: 2.8.31
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: builder
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,20 +92,6 @@ dependencies:
|
|
86
92
|
- - ">="
|
87
93
|
- !ruby/object:Gem::Version
|
88
94
|
version: 2.1.0
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: extlib
|
91
|
-
requirement: !ruby/object:Gem::Requirement
|
92
|
-
requirements:
|
93
|
-
- - ">="
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: '0'
|
96
|
-
type: :runtime
|
97
|
-
prerelease: false
|
98
|
-
version_requirements: !ruby/object:Gem::Requirement
|
99
|
-
requirements:
|
100
|
-
- - ">="
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
95
|
- !ruby/object:Gem::Dependency
|
104
96
|
name: rack
|
105
97
|
requirement: !ruby/object:Gem::Requirement
|
@@ -282,7 +274,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
282
274
|
version: '0'
|
283
275
|
requirements: []
|
284
276
|
rubyforge_project:
|
285
|
-
rubygems_version: 2.2.
|
277
|
+
rubygems_version: 2.2.0
|
286
278
|
signing_key:
|
287
279
|
specification_version: 4
|
288
280
|
summary: Reusable dev & test code.
|