aws-ec2-instance_types 1.4.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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