aws-ec2-instance_types 1.4.1 → 2.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-ec2-instance_types
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Christo De Lange
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-20 00:00:00.000000000 Z
11
+ date: 2018-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,34 +66,6 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.19.1
69
- - !ruby/object:Gem::Dependency
70
- name: mechanize
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: 2.7.2
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: 2.7.2
83
- - !ruby/object:Gem::Dependency
84
- name: nokogiri
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: 1.5.0
90
- type: :runtime
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: 1.5.0
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: awesome_print
99
71
  requirement: !ruby/object:Gem::Requirement
@@ -142,14 +114,14 @@ dependencies:
142
114
  requirements:
143
115
  - - ">="
144
116
  - !ruby/object:Gem::Version
145
- version: 0.4.0
117
+ version: 0.7.1
146
118
  type: :runtime
147
119
  prerelease: false
148
120
  version_requirements: !ruby/object:Gem::Requirement
149
121
  requirements:
150
122
  - - ">="
151
123
  - !ruby/object:Gem::Version
152
- version: 0.4.0
124
+ version: 0.7.1
153
125
  - !ruby/object:Gem::Dependency
154
126
  name: psych
155
127
  requirement: !ruby/object:Gem::Requirement
@@ -192,12 +164,12 @@ files:
192
164
  - ".ruby-version"
193
165
  - ChangeLog.md
194
166
  - Gemfile
167
+ - Gemfile.lock
195
168
  - LICENSE
196
169
  - LICENSE.txt
197
170
  - README.md
198
171
  - README.rdoc
199
172
  - Rakefile
200
- - VERSION
201
173
  - aws-ec2-instance_types.gemspec
202
174
  - bin/aws-ec2-instance_types
203
175
  - features/.gitkeep
@@ -207,13 +179,14 @@ files:
207
179
  - features/support/env.rb
208
180
  - lib/dldinternet/aws/ec2.rb
209
181
  - lib/dldinternet/aws/ec2/instance_types.rb
182
+ - lib/dldinternet/aws/ec2/instance_types/aws-pricing-api-client.rb
210
183
  - lib/dldinternet/aws/ec2/instance_types/cli.rb
211
184
  - lib/dldinternet/aws/ec2/instance_types/error.rb
212
185
  - lib/dldinternet/aws/ec2/instance_types/get.rb
213
186
  - lib/dldinternet/aws/ec2/instance_types/mixins/ec2_instance_types.rb
214
187
  - lib/dldinternet/aws/ec2/instance_types/mixins/no_commands.rb
215
- - lib/dldinternet/aws/ec2/instance_types/scraper.rb
216
188
  - lib/dldinternet/aws/ec2/instance_types/version.rb
189
+ - test/doc.html
217
190
  - test/helper.rb
218
191
  - test/test_aws-ec2-instance_types.rb
219
192
  homepage: https://rubygems.org/gems/aws-ec2-instance_types
@@ -236,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
209
  version: '0'
237
210
  requirements: []
238
211
  rubyforge_project:
239
- rubygems_version: 2.2.2
212
+ rubygems_version: 2.6.13
240
213
  signing_key:
241
214
  specification_version: 4
242
215
  summary: Retrieve an up to date list of valid AWS EC2 Instance Types directly from
@@ -247,5 +220,6 @@ test_files:
247
220
  - features/step_definitions/.gitkeep
248
221
  - features/step_definitions/aws-ec2-instance_types_steps.rb
249
222
  - features/support/env.rb
223
+ - test/doc.html
250
224
  - test/helper.rb
251
225
  - test/test_aws-ec2-instance_types.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.0.4
@@ -1,129 +0,0 @@
1
- module DLDInternet
2
- module AWS
3
- module EC2
4
-
5
- module Instance_Types
6
- HEADINGS_CPU = [
7
- :instance_type, # [0]
8
- :vCPU, # [1]
9
- :memory, # [2]
10
- :instance_storage, # [3]
11
- :networking_performance, # [4]
12
- :physical_processor, # [5]
13
- :clock_speed, # [6]
14
- :Intel_AES_NI, # [7]
15
- :Intel_AVX, # [8]
16
- :Intel_Turbo, # [9]
17
- :EBS_OPT, # [10]
18
- :enhanced_networking # [11]
19
- ]
20
- DEBUG = true
21
- class Scraper
22
- attr_reader :instance_types
23
-
24
- def initialize
25
- @instance_types = {}
26
- end
27
-
28
- # ---------------------------------------------------------------------------------------------------------------
29
- def getInstanceTypes(options={})
30
- unless @instance_types.size > 0
31
- mechanize = options[:mechanize]
32
- unless mechanize
33
- require 'mechanize'
34
- mechanize = Mechanize.new
35
- mechanize.user_agent_alias = 'Mac Safari' # Pretend to use a Mac
36
- end
37
- url = options[:url] || 'http://aws.amazon.com/ec2/instance-types/instance-details/'
38
-
39
- page = mechanize.get(url)
40
-
41
- require 'nokogiri'
42
-
43
- nk = Nokogiri::HTML(page.body)
44
- div = nk.css('div#aws-page-content')
45
- div = nk.css('div.page-content') unless div.to_s.match %r'^<div id="'m
46
- # noinspection RubyAssignmentExpressionInConditionalInspection
47
- if div = find_div(div, %r'^<div\s+class="nine columns content-with-nav'm )
48
- # noinspection RubyAssignmentExpressionInConditionalInspection
49
- if div = find_div(div, %r'^<div\s+class="content parsys'm )
50
- divs = div.css('div').to_a
51
- itm = nil
52
- idx = 0
53
- divs.each do |d|
54
- as = d.css('div div h2 a')
55
- as.each do |a|
56
- # puts "'#{a.text}'"
57
- if a.text.match %r'\s*Instance Types Matrix\s*'
58
- itm = d
59
- break
60
- end
61
- end
62
- break if itm
63
- idx += 1
64
- end
65
- if idx < divs.count
66
- divs = divs[idx..-1]
67
- table = nil
68
- divs.each do |d|
69
- table = d.css('div.aws-table table')
70
- break if table.to_s.match(%r'^<table'i)
71
- end
72
-
73
- @instance_types = scrapeTable(HEADINGS_CPU, table) if table
74
- end
75
- end
76
- end
77
- end
78
- @instance_types
79
- end
80
-
81
- def find_div(nk,regex)
82
- ret = nil
83
- divs = nk.search('div').to_a
84
- if divs.count > 0
85
- nine = divs.select{ |div|
86
- div.to_s.gsub(%r'\n',' ').match(regex)
87
- }
88
- if nine.count >= 1
89
- nine = nine.shift
90
- ret = nine
91
- end
92
- end
93
- ret
94
- end
95
-
96
- # ---------------------------------------------------------------------------------------------------------------
97
- def scrapeTable(cHeadings,table)
98
- raise Error.new 'Cannot find instance type table' unless (table.is_a?(Nokogiri::XML::Element) or table.is_a?(Nokogiri::XML::NodeSet))
99
- rows = table.search('tr')[0..-1].to_a
100
- head = rows.shift
101
-
102
- cols = head.search('td').collect { |td|
103
- text = td.text.to_s
104
- text = text.gsub(%r/(\r?\n)+/, ' ').strip
105
- CGI.unescapeHTML(text)
106
- }
107
- instance_types = {
108
- :headings => {},
109
- :details => []
110
- }
111
- (0..cols.size-1).map { |i| instance_types[:headings][cHeadings[i]] = cols[i] }
112
-
113
- rows.each do |row|
114
-
115
- cells = row.search('td').collect { |td|
116
- CGI.unescapeHTML(td.text.to_s.gsub(%r/(\r?\n)+/, ' ').strip.gsub('32-bit or64-bit', '32-bit or 64-bit'))
117
- }
118
- raise StandardError.new "This row does not have the same number of cells as the table header: #{row.text.to_s.strip}" unless cells.size == cols.size
119
- instance = {}
120
- (0..cells.size-1).map { |i| instance[cHeadings[i]] = cells[i] }
121
- instance_types[:details] << instance
122
- end
123
- instance_types
124
- end
125
- end
126
- end
127
- end
128
- end
129
- end