amazon-pricing 0.1.134 → 0.1.135

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 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