aws-pricing 0.2.0 → 0.3.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.
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
 
3
3
  gem 'httparty'
4
+ gem 'json'
4
5
 
5
6
  group :development do
6
7
  gem "rspec", "~> 2.8.0"
@@ -33,5 +33,6 @@ DEPENDENCIES
33
33
  bundler (~> 1.0.0)
34
34
  httparty
35
35
  jeweler (~> 1.8.3)
36
+ json
36
37
  rdoc (~> 3.12)
37
38
  rspec (~> 2.8.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.3.0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "aws-pricing"
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ian Morgan"]
@@ -47,12 +47,14 @@ Gem::Specification.new do |s|
47
47
 
48
48
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
49
  s.add_runtime_dependency(%q<httparty>, [">= 0"])
50
+ s.add_runtime_dependency(%q<json>, [">= 0"])
50
51
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
51
52
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
52
53
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
53
54
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
54
55
  else
55
56
  s.add_dependency(%q<httparty>, [">= 0"])
57
+ s.add_dependency(%q<json>, [">= 0"])
56
58
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
57
59
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
58
60
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -60,6 +62,7 @@ Gem::Specification.new do |s|
60
62
  end
61
63
  else
62
64
  s.add_dependency(%q<httparty>, [">= 0"])
65
+ s.add_dependency(%q<json>, [">= 0"])
63
66
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
64
67
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
65
68
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
@@ -1,4 +1,5 @@
1
1
  require 'httparty'
2
+ require 'json'
2
3
  dir = File.expand_path(File.join(File.dirname(__FILE__), 'aws-pricing'))
3
4
  ['base', 'ec2','s3','cloudfront', 'emr', 'rds'].each do |req|
4
5
  require File.join(dir, req)
@@ -3,10 +3,18 @@ module AWSPricing
3
3
  #Elastic Compute pricing data
4
4
 
5
5
 
6
- #Returns Hash of server instance pricing information
6
+ #Returns Hash of on-demand server instance pricing information
7
7
  def self.instances
8
8
  Base.get('/ec2/pricing/pricing-on-demand-instances.json')
9
9
  end
10
+
11
+ #Returns Hash of current spot instance pricing information (5m)
12
+ def self.spot_instances
13
+ callback_response = Net::HTTP.get_response(URI.parse 'http://spot-price.s3.amazonaws.com/spot.js').body
14
+ callback_response.gsub!('callback(','')
15
+ callback_response.slice!(callback_response.length-1)
16
+ JSON.parse callback_response
17
+ end
10
18
 
11
19
  #Returns Hash of elastic block storage pricing information
12
20
  def self.ebs
@@ -32,6 +40,6 @@ module AWSPricing
32
40
  def self.elb
33
41
  Base.get('/ec2/pricing/pricing-elb.json')
34
42
  end
35
-
43
+
36
44
  end
37
45
  end
@@ -27,6 +27,10 @@ describe "AwsPricing" do
27
27
  AWSPricing::EC2.elastic_ips.class.should == Hash
28
28
  end
29
29
 
30
+ it "returns a hash of spot instance pricing from jsonp callback hack" do
31
+ AWSPricing::EC2.spot_instances.class.should == Hash
32
+ end
33
+
30
34
 
31
35
  end
32
36
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-pricing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-04-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
16
- requirement: &2162624860 !ruby/object:Gem::Requirement
16
+ requirement: &2155604820 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2162624860
24
+ version_requirements: *2155604820
25
+ - !ruby/object:Gem::Dependency
26
+ name: json
27
+ requirement: &2155603780 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2155603780
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: rspec
27
- requirement: &2162624020 !ruby/object:Gem::Requirement
38
+ requirement: &2155602800 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 2.8.0
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *2162624020
46
+ version_requirements: *2155602800
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: rdoc
38
- requirement: &2162623420 !ruby/object:Gem::Requirement
49
+ requirement: &2155602080 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '3.12'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *2162623420
57
+ version_requirements: *2155602080
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: bundler
49
- requirement: &2162622680 !ruby/object:Gem::Requirement
60
+ requirement: &2155601180 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ~>
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: 1.0.0
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *2162622680
68
+ version_requirements: *2155601180
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: jeweler
60
- requirement: &2162621840 !ruby/object:Gem::Requirement
71
+ requirement: &2155600180 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - ~>
@@ -65,7 +76,7 @@ dependencies:
65
76
  version: 1.8.3
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *2162621840
79
+ version_requirements: *2155600180
69
80
  description: Simpler interface to AWS pricing data
70
81
  email: ian@ruby-code.com
71
82
  executables: []
@@ -107,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
107
118
  version: '0'
108
119
  segments:
109
120
  - 0
110
- hash: 1537789119708931460
121
+ hash: 2973659971606962462
111
122
  required_rubygems_version: !ruby/object:Gem::Requirement
112
123
  none: false
113
124
  requirements: