awspec 1.18.3 → 1.19.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/awspec.gemspec +1 -0
- data/doc/resource_types.md +16 -8
- data/lib/awspec/helper/client_wrap.rb +4 -3
- data/lib/awspec/helper/finder/acm.rb +2 -2
- data/lib/awspec/helper/finder/alb.rb +4 -4
- data/lib/awspec/helper/finder/apigateway.rb +20 -6
- data/lib/awspec/helper/finder/iam.rb +1 -1
- data/lib/awspec/stub/apigateway.rb +39 -0
- data/lib/awspec/type/alb.rb +3 -0
- data/lib/awspec/type/apigateway.rb +50 -0
- data/lib/awspec/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18795d83f853defad01b4fba21d8c37adde28239a88695fc6092c9cd3c7bda52
|
4
|
+
data.tar.gz: 4f1e5ca8c45bf66e2eef19db079c68930895b2f8cf4fee283bfb2d09138211e0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17ce9cd02aca06f1ce991448a4e74776d9c795242dfe4297d971cf2cdb97124c4009509c4f2927202081800a3c940aeae627d1548cbd18e9317659b2445ebd92
|
7
|
+
data.tar.gz: e8a3945166922c258860cc332d802872b47c1dd8551165ec70520cdfaa92734edace4ad9a2b941688771b656a88db2de9bdd313ac75a5f1922d6cdb540a9fce4
|
data/awspec.gemspec
CHANGED
@@ -29,6 +29,7 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_runtime_dependency 'rspec-its'
|
30
30
|
spec.add_runtime_dependency 'term-ansicolor'
|
31
31
|
spec.add_runtime_dependency 'thor'
|
32
|
+
spec.add_runtime_dependency 'addressable'
|
32
33
|
spec.add_development_dependency 'bundler', '>= 1.9', '< 3.0'
|
33
34
|
spec.add_development_dependency 'octorelease'
|
34
35
|
spec.add_development_dependency 'pry'
|
data/doc/resource_types.md
CHANGED
@@ -267,7 +267,7 @@ end
|
|
267
267
|
|
268
268
|
### have_tag
|
269
269
|
|
270
|
-
### its(:architecture), its(:creation_date), its(:image_id), its(:image_location), its(:image_type), its(:public), its(:kernel_id), its(:owner_id), its(:platform), its(:ramdisk_id), its(:state), its(:description), its(:ena_support), its(:hypervisor), its(:image_owner_alias), its(:name), its(:root_device_name), its(:root_device_type), its(:sriov_net_support), its(:state_reason), its(:virtualization_type)
|
270
|
+
### its(:architecture), its(:creation_date), its(:image_id), its(:image_location), its(:image_type), its(:public), its(:kernel_id), its(:owner_id), its(:platform), its(:platform_details), its(:usage_operation), its(:ramdisk_id), its(:state), its(:description), its(:ena_support), its(:hypervisor), its(:image_owner_alias), its(:name), its(:root_device_name), its(:root_device_type), its(:sriov_net_support), its(:state_reason), its(:virtualization_type)
|
271
271
|
### :unlock: Advanced use
|
272
272
|
|
273
273
|
`ami` can use `Aws::EC2::Image` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Image.html).
|
@@ -284,6 +284,14 @@ describe apigateway('my-apigateway') do
|
|
284
284
|
end
|
285
285
|
```
|
286
286
|
|
287
|
+
### have_integration_method
|
288
|
+
|
289
|
+
### have_integration_path
|
290
|
+
|
291
|
+
### have_method
|
292
|
+
|
293
|
+
### have_path
|
294
|
+
|
287
295
|
### its(:id), its(:name), its(:description), its(:created_date), its(:version), its(:warnings), its(:binary_media_types), its(:minimum_compression_size), its(:api_key_source), its(:policy), its(:tags)
|
288
296
|
## <a name="autoscaling_group">autoscaling_group</a>
|
289
297
|
|
@@ -894,7 +902,7 @@ end
|
|
894
902
|
```
|
895
903
|
|
896
904
|
|
897
|
-
### its(:availability_zone), its(:create_time), its(:encrypted), its(:kms_key_id), its(:outpost_arn), its(:size), its(:snapshot_id), its(:state), its(:volume_id), its(:iops), its(:volume_type), its(:fast_restored)
|
905
|
+
### its(:availability_zone), its(:create_time), its(:encrypted), its(:kms_key_id), its(:outpost_arn), its(:size), its(:snapshot_id), its(:state), its(:volume_id), its(:iops), its(:volume_type), its(:fast_restored), its(:multi_attach_enabled)
|
898
906
|
### :unlock: Advanced use
|
899
907
|
|
900
908
|
`ebs` can use `Aws::EC2::Volume` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Volume.html).
|
@@ -1319,7 +1327,7 @@ describe eks('my-eks') do
|
|
1319
1327
|
end
|
1320
1328
|
```
|
1321
1329
|
|
1322
|
-
### its(:name), its(:arn), its(:created_at), its(:version), its(:endpoint), its(:role_arn), its(:logging), its(:identity), its(:status), its(:client_request_token), its(:platform_version), its(:tags)
|
1330
|
+
### its(:name), its(:arn), its(:created_at), its(:version), its(:endpoint), its(:role_arn), its(:logging), its(:identity), its(:status), its(:client_request_token), its(:platform_version), its(:tags), its(:encryption_config)
|
1323
1331
|
## <a name="elasticache">elasticache</a>
|
1324
1332
|
|
1325
1333
|
Elasticache resource type.
|
@@ -1388,7 +1396,7 @@ describe elasticache('my-rep-group-001') do
|
|
1388
1396
|
end
|
1389
1397
|
```
|
1390
1398
|
|
1391
|
-
### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_security_groups), its(:cache_subnet_group_name), its(:cache_nodes), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window), its(:auth_token_enabled), its(:auth_token_last_modified_date), its(:transit_encryption_enabled), its(:at_rest_encryption_enabled)
|
1399
|
+
### its(:cache_cluster_id), its(:configuration_endpoint), its(:client_download_landing_page), its(:cache_node_type), its(:engine), its(:engine_version), its(:cache_cluster_status), its(:num_cache_nodes), its(:preferred_availability_zone), its(:cache_cluster_create_time), its(:preferred_maintenance_window), its(:notification_configuration), its(:cache_security_groups), its(:cache_subnet_group_name), its(:cache_nodes), its(:auto_minor_version_upgrade), its(:replication_group_id), its(:snapshot_retention_limit), its(:snapshot_window), its(:auth_token_enabled), its(:auth_token_last_modified_date), its(:transit_encryption_enabled), its(:at_rest_encryption_enabled), its(:arn)
|
1392
1400
|
## <a name="elasticache_cache_parameter_group">elasticache_cache_parameter_group</a>
|
1393
1401
|
|
1394
1402
|
ElasticacheCacheParameterGroup resource type.
|
@@ -1467,7 +1475,7 @@ end
|
|
1467
1475
|
```
|
1468
1476
|
|
1469
1477
|
|
1470
|
-
### its(:domain_id), its(:domain_name), its(:arn), its(:created), its(:deleted), its(:endpoint), its(:endpoints), its(:processing), its(:upgrade_processing), its(:elasticsearch_version), its(:access_policies), its(:snapshot_options), its(:vpc_options), its(:cognito_options), its(:encryption_at_rest_options), its(:node_to_node_encryption_options), its(:advanced_options), its(:log_publishing_options), its(:service_software_options), its(:domain_endpoint_options)
|
1478
|
+
### its(:domain_id), its(:domain_name), its(:arn), its(:created), its(:deleted), its(:endpoint), its(:endpoints), its(:processing), its(:upgrade_processing), its(:elasticsearch_version), its(:access_policies), its(:snapshot_options), its(:vpc_options), its(:cognito_options), its(:encryption_at_rest_options), its(:node_to_node_encryption_options), its(:advanced_options), its(:log_publishing_options), its(:service_software_options), its(:domain_endpoint_options), its(:advanced_security_options)
|
1471
1479
|
## <a name="elastictranscoder_pipeline">elastictranscoder_pipeline</a>
|
1472
1480
|
|
1473
1481
|
ElastictranscoderPipeline resource type.
|
@@ -1612,7 +1620,7 @@ describe emr('my-emr') do
|
|
1612
1620
|
end
|
1613
1621
|
```
|
1614
1622
|
|
1615
|
-
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:
|
1623
|
+
### its(:id), its(:name), its(:instance_collection_type), its(:log_uri), its(:requested_ami_version), its(:running_ami_version), its(:release_label), its(:auto_terminate), its(:termination_protected), its(:visible_to_all_users), its(:service_role), its(:normalized_instance_hours), its(:master_public_dns_name), its(:configurations), its(:security_configuration), its(:auto_scaling_role), its(:scale_down_behavior), its(:custom_ami_id), its(:ebs_root_volume_size), its(:repo_upgrade_on_boot), its(:cluster_arn), its(:outpost_arn), its(:step_concurrency_level)
|
1616
1624
|
## <a name="firehose">firehose</a>
|
1617
1625
|
|
1618
1626
|
Firehose resource type.
|
@@ -3381,7 +3389,7 @@ end
|
|
3381
3389
|
```
|
3382
3390
|
|
3383
3391
|
|
3384
|
-
### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies)
|
3392
|
+
### its(:name), its(:type), its(:key_id), its(:last_modified_date), its(:last_modified_user), its(:description), its(:allowed_pattern), its(:version), its(:tier), its(:policies), its(:data_type)
|
3385
3393
|
### :unlock: Advanced use
|
3386
3394
|
|
3387
3395
|
```ruby
|
@@ -3425,7 +3433,7 @@ end
|
|
3425
3433
|
```
|
3426
3434
|
|
3427
3435
|
|
3428
|
-
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn), its(:outpost_arn)
|
3436
|
+
### its(:availability_zone), its(:availability_zone_id), its(:available_ip_address_count), its(:cidr_block), its(:default_for_az), its(:map_public_ip_on_launch), its(:map_customer_owned_ip_on_launch), its(:customer_owned_ipv_4_pool), its(:state), its(:subnet_id), its(:vpc_id), its(:owner_id), its(:assign_ipv_6_address_on_creation), its(:ipv_6_cidr_block_association_set), its(:subnet_arn), its(:outpost_arn)
|
3429
3437
|
### :unlock: Advanced use
|
3430
3438
|
|
3431
3439
|
`subnet` can use `Aws::EC2::Subnet` resource (see http://docs.aws.amazon.com/sdkforruby/api/Aws/EC2/Subnet.html).
|
@@ -2,7 +2,7 @@ require 'awspec/config'
|
|
2
2
|
|
3
3
|
module Awspec::Helper
|
4
4
|
class ClientWrap
|
5
|
-
attr_reader :client, :backoff, :iteration, :backoff_limit, :
|
5
|
+
attr_reader :client, :backoff, :iteration, :backoff_limit, :symbol1, :symbol2
|
6
6
|
def initialize(real_client = nil)
|
7
7
|
raise ArgumentError, 'Client can not be nil' if real_client.nil?
|
8
8
|
config = Awspec::Config.instance
|
@@ -14,7 +14,8 @@ module Awspec::Helper
|
|
14
14
|
@backoff_limit = config[:client_backoff_limit]
|
15
15
|
# build the symbol we'll use to compare to any errors caught in method_missing
|
16
16
|
# below.
|
17
|
-
@
|
17
|
+
@symbol1 = real_client.class.to_s.split('::').shift(2).push('Errors', 'RequestLimitExceeded').join('::').to_sym
|
18
|
+
@symbol2 = real_client.class.to_s.split('::').shift(2).push('Errors', 'Throttling').join('::').to_sym
|
18
19
|
end
|
19
20
|
|
20
21
|
protected
|
@@ -28,7 +29,7 @@ module Awspec::Helper
|
|
28
29
|
begin
|
29
30
|
results = client.send(m, *args, &block)
|
30
31
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
31
|
-
raise unless e.class.to_s ==
|
32
|
+
raise unless (e.class.to_s == symbol1.to_s || e.class.to_s == symbol2.to_s) && backoff < backoff_limit
|
32
33
|
|
33
34
|
@backoff = backoff + (iteration * iteration * 0.5)
|
34
35
|
@iteration += 1
|
@@ -3,8 +3,8 @@ module Awspec::Helper
|
|
3
3
|
module Acm
|
4
4
|
def find_certificate(id)
|
5
5
|
selected = []
|
6
|
+
req = {}
|
6
7
|
loop do
|
7
|
-
req = {}
|
8
8
|
res = acm_client.list_certificates(req)
|
9
9
|
selected += res.certificate_summary_list.select do |c|
|
10
10
|
c.certificate_arn == id || c.domain_name == id
|
@@ -19,8 +19,8 @@ module Awspec::Helper
|
|
19
19
|
|
20
20
|
def select_all_certificates
|
21
21
|
certs = []
|
22
|
+
req = {}
|
22
23
|
loop do
|
23
|
-
req = {}
|
24
24
|
res = acm_client.list_certificates(req)
|
25
25
|
res.certificate_summary_list.each do |c|
|
26
26
|
certs << c.certificate_arn
|
@@ -6,7 +6,7 @@ module Awspec::Helper
|
|
6
6
|
res.load_balancers.select do |lb|
|
7
7
|
lb.type == 'application'
|
8
8
|
end.single_resource(id)
|
9
|
-
rescue
|
9
|
+
rescue Aws::ElasticLoadBalancingV2::Errors::LoadBalancerNotFound
|
10
10
|
return nil
|
11
11
|
end
|
12
12
|
|
@@ -20,7 +20,7 @@ module Awspec::Helper
|
|
20
20
|
def find_alb_listener(arn)
|
21
21
|
res = elbv2_client.describe_listeners({ listener_arns: [arn] })
|
22
22
|
res.listeners.single_resource(arn)
|
23
|
-
rescue
|
23
|
+
rescue StandardError
|
24
24
|
return nil
|
25
25
|
end
|
26
26
|
|
@@ -40,7 +40,7 @@ module Awspec::Helper
|
|
40
40
|
res.target_groups.select do |tg|
|
41
41
|
%w(HTTP HTTPS).include?(tg.protocol)
|
42
42
|
end.single_resource(id)
|
43
|
-
rescue
|
43
|
+
rescue StandardError
|
44
44
|
return nil
|
45
45
|
end
|
46
46
|
|
@@ -60,7 +60,7 @@ module Awspec::Helper
|
|
60
60
|
res.tag_descriptions.select do |resource|
|
61
61
|
resource.resource_arn == id
|
62
62
|
end.first.tags
|
63
|
-
rescue
|
63
|
+
rescue StandardError
|
64
64
|
return nil
|
65
65
|
end
|
66
66
|
end
|
@@ -2,20 +2,34 @@ module Awspec::Helper
|
|
2
2
|
module Finder
|
3
3
|
module Apigateway
|
4
4
|
def find_apigateway_by_id(id)
|
5
|
-
|
6
|
-
|
7
|
-
|
5
|
+
apis = []
|
6
|
+
apigateway_client.get_rest_apis(limit: 500).each do |response|
|
7
|
+
apis += response.items
|
8
|
+
end
|
9
|
+
apis.each do |api|
|
10
|
+
return api if api.id == id
|
8
11
|
end
|
9
12
|
nil
|
10
13
|
end
|
11
14
|
|
12
15
|
def find_apigateway_by_name(name)
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
apis = []
|
17
|
+
apigateway_client.get_rest_apis(limit: 500).each do |response|
|
18
|
+
apis += response.items
|
19
|
+
end
|
20
|
+
apis.each do |api|
|
21
|
+
return api if api.name == name
|
16
22
|
end
|
17
23
|
nil
|
18
24
|
end
|
25
|
+
|
26
|
+
def find_api_resources_by_id(api_id)
|
27
|
+
all_resources = []
|
28
|
+
apigateway_client.get_resources(rest_api_id: api_id, limit: 500, embed: ['methods']).each do |response|
|
29
|
+
all_resources += response.items
|
30
|
+
end
|
31
|
+
all_resources != [] ? all_resources : nil
|
32
|
+
end
|
19
33
|
end
|
20
34
|
end
|
21
35
|
end
|
@@ -70,6 +70,45 @@ Aws.config[:apigateway] = {
|
|
70
70
|
}
|
71
71
|
}
|
72
72
|
]
|
73
|
+
},
|
74
|
+
get_resources: {
|
75
|
+
position: '1',
|
76
|
+
items: [
|
77
|
+
{
|
78
|
+
path: '/proxy',
|
79
|
+
resource_methods: {
|
80
|
+
'GET' => {
|
81
|
+
http_method: 'GET',
|
82
|
+
method_integration: { http_method: 'POST', uri: 'http://127.0.0.1:8080/hockey' }
|
83
|
+
}
|
84
|
+
}
|
85
|
+
},
|
86
|
+
{
|
87
|
+
path: '/zambonis',
|
88
|
+
resource_methods: {
|
89
|
+
'POST' => {
|
90
|
+
http_method: 'POST',
|
91
|
+
method_integration: { http_method: 'POST',
|
92
|
+
uri: 'http://127.0.0.1:8080/zambonis/{arena}?arena=Saddledome' }
|
93
|
+
}
|
94
|
+
}
|
95
|
+
},
|
96
|
+
{
|
97
|
+
path: '/zambonis/123',
|
98
|
+
resource_methods: {
|
99
|
+
'POST' => {
|
100
|
+
http_method: 'POST',
|
101
|
+
method_integration: { http_method: 'AWS',
|
102
|
+
uri: 'arn:aws:apigateway:us-east-1:cognito-idp:action/ListUsers' }
|
103
|
+
},
|
104
|
+
'GET' => {
|
105
|
+
http_method: 'GET',
|
106
|
+
method_integration: { http_method: 'AWS',
|
107
|
+
uri: 'arn:aws:apigateway:us-east-1:cognito-idp:action/SignUp?username=test' }
|
108
|
+
}
|
109
|
+
}
|
110
|
+
}
|
111
|
+
]
|
73
112
|
}
|
74
113
|
}
|
75
114
|
}
|
data/lib/awspec/type/alb.rb
CHANGED
@@ -15,11 +15,13 @@ module Awspec::Type
|
|
15
15
|
|
16
16
|
STATES.each do |state|
|
17
17
|
define_method state + '?' do
|
18
|
+
check_existence
|
18
19
|
resource_via_client.state.code == state
|
19
20
|
end
|
20
21
|
end
|
21
22
|
|
22
23
|
def has_security_group?(sg_id)
|
24
|
+
check_existence
|
23
25
|
sgs = resource_via_client.security_groups
|
24
26
|
ret = sgs.find do |sg|
|
25
27
|
sg == sg_id
|
@@ -31,6 +33,7 @@ module Awspec::Type
|
|
31
33
|
end
|
32
34
|
|
33
35
|
def has_subnet?(subnet_id)
|
36
|
+
check_existence
|
34
37
|
azs = resource_via_client.availability_zones
|
35
38
|
ret = azs.find do |az|
|
36
39
|
az.subnet_id == subnet_id
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'addressable/uri'
|
2
|
+
|
1
3
|
module Awspec::Type
|
2
4
|
class Apigateway < ResourceBase
|
3
5
|
aws_resource Aws::APIGateway::Client
|
@@ -11,5 +13,53 @@ module Awspec::Type
|
|
11
13
|
def id
|
12
14
|
@id ||= resource_via_client.id if resource_via_client
|
13
15
|
end
|
16
|
+
|
17
|
+
def api_resources
|
18
|
+
@api_resources.nil? ? @api_resources = find_api_resources_by_id(@id) : @api_resources
|
19
|
+
end
|
20
|
+
|
21
|
+
def has_path?(path)
|
22
|
+
check_existence
|
23
|
+
self.api_resources.each do |resource|
|
24
|
+
return resource if resource.path == path
|
25
|
+
end
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def has_integration_path?(path)
|
30
|
+
check_existence
|
31
|
+
self.api_resources.each do |resource|
|
32
|
+
next if resource.resource_methods.nil?
|
33
|
+
resource.resource_methods.each do |_, method|
|
34
|
+
if method.method_integration.http_method == 'AWS'
|
35
|
+
aws_path = method.method_integration.uri.match(%r{(\/[^\?]+)\??.*$}).captures[0] # Matches for ARN type path
|
36
|
+
return resource if aws_path == path
|
37
|
+
end
|
38
|
+
uri = Addressable::URI.parse(method.method_integration.uri)
|
39
|
+
return resource if uri.path == path
|
40
|
+
end
|
41
|
+
end
|
42
|
+
nil
|
43
|
+
end
|
44
|
+
|
45
|
+
def has_method?(path, http_method)
|
46
|
+
check_existence
|
47
|
+
resource_to_check = has_path?(path)
|
48
|
+
return nil if resource_to_check.nil?
|
49
|
+
resource_to_check.resource_methods.each do |_, method|
|
50
|
+
return resource_to_check if method.http_method == http_method
|
51
|
+
end
|
52
|
+
nil
|
53
|
+
end
|
54
|
+
|
55
|
+
def has_integration_method?(integration_path, http_method)
|
56
|
+
check_existence
|
57
|
+
integration_resource_to_check = has_integration_path?(integration_path)
|
58
|
+
return nil if integration_resource_to_check.nil?
|
59
|
+
integration_resource_to_check.resource_methods.each do |_, method|
|
60
|
+
return integration_resource_to_check if method.method_integration.http_method == http_method
|
61
|
+
end
|
62
|
+
nil
|
63
|
+
end
|
14
64
|
end
|
15
65
|
end
|
data/lib/awspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: awspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.19.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- k1LoW
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk
|
@@ -122,6 +122,20 @@ dependencies:
|
|
122
122
|
- - ">="
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: addressable
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
125
139
|
- !ruby/object:Gem::Dependency
|
126
140
|
name: bundler
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|