capacity 0.0.1

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.tar.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ H��l�3 N����6v�}[�=C�>)<��@�յ
2
+ X��]�֪c�(X럎���B��_`� �a���C{�B��Rl�d�B��m*~�" ~�|Z.�4��z ��t"����f5K4 %:3�`��g2F��<�mh{&ͺ�t��φ*�xeK~�����Pz�u� �'�m�5�d����}���ٷUm�?��PEL���|@�bɏ���gj��A��~��*�98/ph�Z p��&rŒ��l��]gݺ
data/Manifest ADDED
@@ -0,0 +1,3 @@
1
+ Rakefile
2
+ lib/capacity.rb
3
+ Manifest
data/Rakefile ADDED
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'rake'
3
+ require 'echoe'
4
+
5
+ Echoe.new('capacity', '0.0.1') do |p|
6
+ p.description = 'A handy class for interacting with the Capacity API'
7
+ p.url = 'http://getcapacity.com/'
8
+ p.author = 'Peat Bakke'
9
+ p.email = 'peat@getcapacity.com'
10
+ p.ignore_pattern = ['tmp/*', 'script/*', 'capacity.gemspec']
11
+ p.development_dependencies = []
12
+ end
data/capacity.gemspec ADDED
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{capacity}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Peat Bakke"]
9
+ s.cert_chain = ["/Users/peat/.ssh/gem-public_cert.pem"]
10
+ s.date = %q{2010-10-20}
11
+ s.description = %q{A handy class for interacting with the Capacity API}
12
+ s.email = %q{peat@getcapacity.com}
13
+ s.extra_rdoc_files = ["lib/capacity.rb"]
14
+ s.files = ["Rakefile", "lib/capacity.rb", "Manifest", "capacity.gemspec"]
15
+ s.homepage = %q{http://getcapacity.com/}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Capacity"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{capacity}
19
+ s.rubygems_version = %q{1.3.7}
20
+ s.signing_key = %q{/Users/peat/.ssh/gem-private_key.pem}
21
+ s.summary = %q{A handy class for interacting with the Capacity API}
22
+
23
+ if s.respond_to? :specification_version then
24
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
+ s.specification_version = 3
26
+
27
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
+ else
29
+ end
30
+ else
31
+ end
32
+ end
data/lib/capacity.rb ADDED
@@ -0,0 +1,75 @@
1
+ require 'rubygems'
2
+ require 'uri'
3
+ require 'net/http'
4
+ require 'json'
5
+
6
+ # talks with the Capcity API
7
+ class Capacity
8
+
9
+ SERVER = 'http://localhost:8080/'
10
+ VERSION = 'v1'
11
+
12
+ @@token = nil
13
+
14
+ def self.token=( token )
15
+ @@token = token
16
+ end
17
+
18
+ def self.get( resource, query = {} )
19
+ request( :get, resource, query )
20
+ end
21
+
22
+ def self.post( resource, query = {} )
23
+ request( :post, resource, query )
24
+ end
25
+
26
+ def self.put( resource, query = {} )
27
+ request( :put, resource, query )
28
+ end
29
+
30
+ def self.delete( resource, query = {} )
31
+ request( :delete, resource, query )
32
+ end
33
+
34
+ protected
35
+
36
+ def self.request( http_method, resource, query = {} )
37
+ query.merge!( { :token => @@token } ) if @@token
38
+
39
+ url = URI.parse("#{SERVER}#{VERSION}/#{resource}")
40
+
41
+ # hack for query parameter in GETs
42
+ if http_method == :get
43
+ if query.empty?
44
+ get_path = url.path
45
+ else
46
+ query_array = []
47
+ query.each do |k,v|
48
+ if v.is_a?(Hash) # sub-key/value pairs, eg: query[foo]=abcdef query[bar]=zed
49
+ v.each do |subKey, subVal|
50
+ query_array << URI.escape( "#{k.to_s}[" + subKey.to_s + "]" ) + "=" + URI.escape( subVal.to_s )
51
+ end
52
+ else
53
+ query_array << "#{URI.escape( k.to_s )}=#{URI.escape( v.to_s )}"
54
+ end
55
+ end
56
+ get_path = url.path + "?" + query_array.join("&");
57
+ end
58
+ end
59
+
60
+ req = case http_method
61
+ when :get then Net::HTTP::Get.new( get_path )
62
+ when :put then Net::HTTP::Put.new( url.path )
63
+ when :post then Net::HTTP::Post.new( url.path )
64
+ when :delete then Net::HTTP::Delete.new( url.path )
65
+ end
66
+
67
+ res = Net::HTTP.start( url.host, url.port ) { |http|
68
+ req.set_form_data( query ) if http_method != :get
69
+ http.request( req )
70
+ }
71
+
72
+ JSON.parse( res.body )
73
+ end
74
+
75
+ end
metadata ADDED
@@ -0,0 +1,92 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capacity
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Peat Bakke
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain:
16
+ - |
17
+ -----BEGIN CERTIFICATE-----
18
+ MIIDNjCCAh6gAwIBAgIBADANBgkqhkiG9w0BAQUFADBBMQ0wCwYDVQQDDARwZWF0
19
+ MRswGQYKCZImiZPyLGQBGRYLZ2V0Y2FwYWNpdHkxEzARBgoJkiaJk/IsZAEZFgNj
20
+ b20wHhcNMTAxMDIxMDAxMzA0WhcNMTExMDIxMDAxMzA0WjBBMQ0wCwYDVQQDDARw
21
+ ZWF0MRswGQYKCZImiZPyLGQBGRYLZ2V0Y2FwYWNpdHkxEzARBgoJkiaJk/IsZAEZ
22
+ FgNjb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6+CSHXa+LJxqk
23
+ KOrPvFGowlo02w5DVhxBDNF8crL4gTFCJnnTqnuBu+oaXrEsZFt/oYtcXMO4afWL
24
+ Oy0Os2shk0Y05EhZm5bM1JAcdZ9SiMv2g57pVGOwcLdv1teJBhnXozAsFDGHetk5
25
+ 3g4e7Q7pXo7v/SIPt2suI8w916d5h2Gt+TPJjJ6gDlDezOgd/WjJXk6ctGezraf4
26
+ JoAKZFqRnC4DRSZSObLTbWPAFg6J77svqsE75ofgfIaHP2oBIPMoHS8JHlTTqbOG
27
+ z8aKiXKPwWqnb82PMPLAbaIj09Yo2WLKXqCoNuagUfWSoKo85uq9k9CacWWCQ+t9
28
+ V+Fq5/dNAgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFGtY7g9qcqNggZn6
29
+ GpeHbuBJG0bzMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAHG38dJGR
30
+ mCTCULOBr1dF12LtlU1a86+fqlf3SRJVJiepyUaZlJ9H6+MXqIqiuqnSU9LRgSY8
31
+ sNM9cAfnVsIckG7ZhXbnC1i0c4EcQtORA2LEJUgWl5bueVOJ3BMsCyHwLE/cL+lT
32
+ RZ9v0e11lk0VyRByPitU2c+4/JtFXZFuTSXeb2e5CwmHGw7JcuVTOjZUkHPGTvFT
33
+ pkB8+/MvqQRB7p2nU9SNx5A/3gwe9MgR225kDP16RDltWwrhtpVZXlEfHNPHdzfz
34
+ NMWHr82vqE4ZuAA/dWidHaZ0J2OPgxnhO2eSP7mO6mefBZ13J6IfLaEyXgWU4ttz
35
+ xMeJ822ms/e03A==
36
+ -----END CERTIFICATE-----
37
+
38
+ date: 2010-10-20 00:00:00 -07:00
39
+ default_executable:
40
+ dependencies: []
41
+
42
+ description: A handy class for interacting with the Capacity API
43
+ email: peat@getcapacity.com
44
+ executables: []
45
+
46
+ extensions: []
47
+
48
+ extra_rdoc_files:
49
+ - lib/capacity.rb
50
+ files:
51
+ - Rakefile
52
+ - lib/capacity.rb
53
+ - Manifest
54
+ - capacity.gemspec
55
+ has_rdoc: true
56
+ homepage: http://getcapacity.com/
57
+ licenses: []
58
+
59
+ post_install_message:
60
+ rdoc_options:
61
+ - --line-numbers
62
+ - --inline-source
63
+ - --title
64
+ - Capacity
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ none: false
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ segments:
81
+ - 1
82
+ - 2
83
+ version: "1.2"
84
+ requirements: []
85
+
86
+ rubyforge_project: capacity
87
+ rubygems_version: 1.3.7
88
+ signing_key:
89
+ specification_version: 3
90
+ summary: A handy class for interacting with the Capacity API
91
+ test_files: []
92
+
metadata.gz.sig ADDED
Binary file