aws-pricing 0.2.0 → 0.3.0

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