amazon-pricing 0.1.134 → 0.1.135

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- YmE5MzcwYmI2YjhjZmRlN2JiMWQ3NGZhNGQ2NzhjZTU5M2M0N2NlZA==
5
- data.tar.gz: !binary |-
6
- NDhjODczMGIyN2E1ZGViZWE3YjZiYTc0ODRkOTUyNDJlMmY0M2Q1Yg==
2
+ SHA256:
3
+ metadata.gz: 10b7c63f50fa80a65001aa63c92463a23ee353ea9ef818720e90ee197a9aa6c0
4
+ data.tar.gz: c2b8582a55deb863cd43633fed151c49b81ff2df7c49af84821cedf0789dbd65
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- YWQyZjY3MTU4M2JmYmVmNTA2NGY2YmUwZTFjODQ1ZDViMmFiZWMxOGZhOGQ1
10
- ODY3YTg5Y2MxZWRjM2Q2ZTA2Y2Y2MjJhNzNjOTU1OWZjMTFiMzFlMGZmM2U2
11
- ZjJhNmQzOGM5MzY0OWY4ZDQyNjQ4MDRmYzZhNzQzYmEyMDM2NDU=
12
- data.tar.gz: !binary |-
13
- MmU2MDM3YzE0MmZlNTczMzRlMjVkMjg0MGJiNzMzNDY2OTdlN2RiM2I2MjY3
14
- MzdjM2MwYmZkYzEzNThmNzQ5ODI3NDFjNmI0OTIyZDcwNzBlZmNlYzA1ZGUw
15
- M2Y0YzM2M2EwNjdhYThlMWNhMmFmNzc5NjEwNDdkYTZlOGUzM2E=
6
+ metadata.gz: 89c637ec8690664d6e31f587608366e4bbe4886530e0c2e54e835f9f82ab319c665aef5c57767dcb76b43bb304c65c1542633e39895d5c02cb313c3e1948c03c
7
+ data.tar.gz: aeeb9414b090745a2dbb567cf1efe11c3e4a060b2d89499d45f1743933da1423edae3fb8969f0623dac68180dfca17eb02804eb75dc80f42c4d56e8484cf6920
@@ -11,14 +11,14 @@ module AwsPricing
11
11
  'GeneralPurpose' => {
12
12
  'CurrentGen' => {
13
13
  'A1' => ['a1.medium', 'a1.large', 'a1.xlarge', 'a1.2xlarge', 'a1.4xlarge'],
14
- 'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
15
14
  'M4' => ['m4.large', 'm4.xlarge', 'm4.2xlarge', 'm4.4xlarge', 'm4.10xlarge', 'm4.16xlarge'],
16
15
  'M5' => ['m5.large', 'm5.xlarge', 'm5.2xlarge', 'm5.4xlarge', 'm5.12xlarge', 'm5.24xlarge', 'm5.metal'],
17
16
  'M5D' => ['m5d.large', 'm5d.xlarge', 'm5d.2xlarge', 'm5d.4xlarge', 'm5d.12xlarge', 'm5d.24xlarge', 'm5d.metal'],
18
17
  'M5A' => ['m5a.large', 'm5a.xlarge', 'm5a.2xlarge', 'm5a.4xlarge', 'm5a.12xlarge', 'm5a.24xlarge'],
19
18
  },
20
19
  'PreviousGen' => {
21
- 'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge']
20
+ 'M1' => ['m1.small', 'm1.medium', 'm1.large', 'm1.xlarge'],
21
+ 'M3' => ['m3.medium', 'm3.large', 'm3.xlarge', 'm3.2xlarge'],
22
22
  }
23
23
  },
24
24
  'BurstableInstances' => {
@@ -95,39 +95,39 @@ module AwsPricing
95
95
 
96
96
  # Important: Members of a family must be kept in 'size' order (small, medium, large, etc.)
97
97
  # AWS Docs: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
98
- def instance_types
98
+ def self.instance_types
99
99
  @@INSTANCE_TYPES_BY_CLASSIFICATION
100
100
  end
101
101
 
102
- def general_purpose_instances
102
+ def self.general_purpose_instances
103
103
  instance_types['GeneralPurpose']
104
104
  end
105
105
 
106
- def burstable_instances
106
+ def self.burstable_instances
107
107
  instance_types['BurstableInstances']
108
108
  end
109
109
 
110
- def compute_optimized_instances
110
+ def self.compute_optimized_instances
111
111
  instance_types['ComputeOptimized']
112
112
  end
113
113
 
114
- def memory_optimized_instances
114
+ def self.memory_optimized_instances
115
115
  instance_types['MemoryOptimized']
116
116
  end
117
117
 
118
- def storage_optimized_instances
118
+ def self.storage_optimized_instances
119
119
  instance_types['StorageOptimized']
120
120
  end
121
121
 
122
- def gpu_instances
122
+ def self.gpu_instances
123
123
  instance_types['GPUInstances']
124
124
  end
125
125
 
126
- def micro_instances
126
+ def self.micro_instances
127
127
  instance_types['MicroInstances']
128
128
  end
129
129
 
130
- def previous_generation_instances
130
+ def self.previous_generation_instances
131
131
  [
132
132
  general_purpose_instances['PreviousGen'],
133
133
  compute_optimized_instances['PreviousGen'],
@@ -142,7 +142,7 @@ module AwsPricing
142
142
  end
143
143
  end
144
144
 
145
- def current_generation_instances
145
+ def self.current_generation_instances
146
146
  [
147
147
  general_purpose_instances['CurrentGen'],
148
148
  burstable_instances['CurrentGen'],
@@ -157,7 +157,7 @@ module AwsPricing
157
157
  end
158
158
  end
159
159
 
160
- def all_instances
160
+ def self.all_instances
161
161
  @all_instances ||= begin
162
162
  [previous_generation_instances, current_generation_instances].inject({}) do |instances, family|
163
163
  instances.merge(family)
@@ -165,15 +165,15 @@ module AwsPricing
165
165
  end
166
166
  end
167
167
 
168
- def family(api_name)
168
+ def self.family(api_name)
169
169
  all_instances.select { |family, instances| instances.include?(api_name) }.keys.first
170
170
  end
171
171
 
172
- def family_members(api_name)
172
+ def self.family_members(api_name)
173
173
  all_instances.select { |family, instances| instances.include?(api_name) }.values.first
174
174
  end
175
175
 
176
- def api_name_to_nf(name)
176
+ def self.api_name_to_nf(name)
177
177
  type = name.split('.').last
178
178
  if (type == METAL)
179
179
  # See if our metal instance has a hard-coded nf value
@@ -190,7 +190,7 @@ module AwsPricing
190
190
  type = sizes[-1].split('.').last # 'metal' defaults to largest size
191
191
  if sizes[-1].split('.').last == METAL
192
192
  if sizes.size == 1 # We have an instance family with only metals but no NF associated; raise an error
193
- raise UnknownTypeError, "Unknown metal type #{name}", caller
193
+ return nil
194
194
  end
195
195
  type = sizes[-2].split('.').last # 'metal' already largest, so 2nd largest
196
196
  end
@@ -218,20 +218,14 @@ module AwsPricing
218
218
  ["#{fam}.#{new_type}" , nf]
219
219
  end
220
220
 
221
- def size_to_nf
221
+ def self.size_to_nf
222
222
  SIZE_TO_NF_TABLE
223
223
  end
224
224
 
225
- def nf_to_size
226
- NF_TO_SIZE_TABLE
227
- end
228
-
229
- def metal_to_nf
225
+ def self.metal_to_nf
230
226
  METAL_TO_NF_TABLE
231
227
  end
232
228
 
233
-
234
- # Remove metal from this array? force adoption of this
235
229
  # NB: 'metal' is not in this table (since it's family specific), see #api_name_to_nf
236
230
  SIZE_TO_NF_TABLE = {
237
231
  "nano" => 0.25,
@@ -9,5 +9,6 @@
9
9
  #++
10
10
  module AwsPricing
11
11
 
12
- VERSION = '0.1.134' # [major,minor.fix]: Support for db.r5 and db.t3 rds instances
12
+ VERSION = '0.1.135' # [major,minor.fix]: Moving instance-type methods to be class methods rather than instance methods
13
+
13
14
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amazon-pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.134
4
+ version: 0.1.135
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Kinsella
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-26 00:00:00.000000000 Z
11
+ date: 2019-02-27 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A Ruby library for retrieving pricing for Amazon Web Services
14
14
  email:
@@ -19,7 +19,7 @@ extra_rdoc_files:
19
19
  - LICENSE
20
20
  - README.md
21
21
  files:
22
- - .gitignore
22
+ - ".gitignore"
23
23
  - CHANGELOG.md
24
24
  - Gemfile
25
25
  - Gemfile.lock
@@ -73,26 +73,25 @@ licenses:
73
73
  metadata: {}
74
74
  post_install_message:
75
75
  rdoc_options:
76
- - --title
76
+ - "--title"
77
77
  - amazon-pricing documentation
78
- - --line-numbers
79
- - --main
78
+ - "--line-numbers"
79
+ - "--main"
80
80
  - README.md
81
81
  require_paths:
82
82
  - lib
83
83
  required_ruby_version: !ruby/object:Gem::Requirement
84
84
  requirements:
85
- - - ! '>='
85
+ - - ">="
86
86
  - !ruby/object:Gem::Version
87
87
  version: '0'
88
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - ! '>='
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
- rubyforge_project: amazon-pricing
95
- rubygems_version: 2.6.14
94
+ rubygems_version: 3.0.2
96
95
  signing_key:
97
96
  specification_version: 4
98
97
  summary: Amazon Web Services Pricing Ruby gem