web_api 0.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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f18b910d048401a2533ff77db4f3051bb31dea9e
4
+ data.tar.gz: f7fd0c7b709ab90fc58842253d94be387d07f99e
5
+ SHA512:
6
+ metadata.gz: 0c579598e841958f395a2246937d348476ca942e1e705e26ad2256a1fe694cb48521ebf10cf62f4cf4cc3b6184c8910b6c3c3d747bb2878055dde1ec43d7f99a
7
+ data.tar.gz: 53f7700165d07135d3481c7ef71a5b609cbb3bfc69ad6d93c95114509d5b8a1a81c8f0acb80f6ea533d7d970fc411f2f70d2cefa0b7650d2bd57ea6d7a83bb07
data/History.txt ADDED
@@ -0,0 +1 @@
1
+ === 0.0.0 / 2013-12-23 13:59:42 -0800
data/Manifest.txt ADDED
@@ -0,0 +1,21 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.rdoc
4
+ TODO.txt
5
+ examples/bitcoincharts
6
+ examples/mtgox1
7
+ examples/mtgox2
8
+ examples/twitter
9
+ examples/youtube
10
+ features/main.feature
11
+ features/step_definitions/main_steps.rb
12
+ lib/web_api.rb
13
+ lib/web_api/auth.rb
14
+ lib/web_api/client.rb
15
+ lib/web_api/signed.rb
16
+ lib/web_api/signed2.rb
17
+ lib/web_api/signet.rb
18
+ lib/web_api/version.rb
19
+ lib/web_api/web_api.rb
20
+ test/web_api.rb
21
+ web_api.gemspec
data/README.rdoc ADDED
@@ -0,0 +1,57 @@
1
+ = web_api
2
+
3
+ github :: https://www.github.com/carlosjhr64/web_api
4
+ rubygems :: https://rubygems.org/gems/web_api
5
+
6
+ == DESCRIPTION:
7
+
8
+ Ruby library for web api's.
9
+
10
+ In Beta. Testing not done. Only GET and POST implemented.
11
+
12
+ Looks like there's enough to be useful, and
13
+ wanted register the name.
14
+ I think the front end in fixed, so
15
+ the synopsis below is not likely to change.
16
+
17
+ == SYNOPSIS:
18
+
19
+ require 'web_api'
20
+ webapi = WEB_API::WebApi.new
21
+ ### **Name** **Url** **Type(get or post)**
22
+ webapi.add_method('wutuwant', 'http://service.org/v1/wutuwant', 'get')
23
+ # You can pass the post's (or query's) key value pairs in a hash.
24
+ response = webapi.wutuwant({'key'=>'value' })
25
+
26
+ == FEATURES/PROBLEMS:
27
+
28
+ * Beta, still testing.
29
+
30
+ == INSTALL:
31
+
32
+ $ sudo gem install web_api
33
+
34
+ == LICENSE:
35
+
36
+ (The MIT License)
37
+
38
+ Copyright (c) 2013 CarlosJHR64
39
+
40
+ Permission is hereby granted, free of charge, to any person obtaining
41
+ a copy of this software and associated documentation files (the
42
+ 'Software'), to deal in the Software without restriction, including
43
+ without limitation the rights to use, copy, modify, merge, publish,
44
+ distribute, sublicense, and/or sell copies of the Software, and to
45
+ permit persons to whom the Software is furnished to do so, subject to
46
+ the following conditions:
47
+
48
+ The above copyright notice and this permission notice shall be
49
+ included in all copies or substantial portions of the Software.
50
+
51
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
52
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
53
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
54
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
55
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
56
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
57
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/TODO.txt ADDED
@@ -0,0 +1,3 @@
1
+ == File List
2
+
3
+
@@ -0,0 +1,78 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # Standard Libraries:
4
+ require 'English'
5
+ require 'pp'
6
+ require 'json'
7
+
8
+ # Gems:
9
+ require 'help_parser'
10
+
11
+ # This Gem:
12
+ require 'web_api'
13
+ include WEB_API
14
+
15
+ VERSION = '0.0.0'
16
+ NAME = File.basename $PROGRAM_NAME # bitcoincharts
17
+
18
+ DEFAULT_MARKET = 'mtgoxUSD'
19
+ DEFAULT_START = Time.now.to_i - 60*60 # One hour ago
20
+
21
+ MARKETS_HELP = <<MARKETS_HELP.strip
22
+ Options for "markets": None.
23
+ MARKETS_HELP
24
+
25
+ TRADES_HELP = <<TRADES_HELP.strip
26
+ Options for "trades":
27
+ --symbol=SYMBOL Defaults to #{DEFAULT_MARKET}.
28
+ --start=UNIXTIME Defaults to one hour ago.
29
+ TRADES_HELP
30
+
31
+ HELP = <<HELP.strip
32
+ Usage: #{NAME} [global options] [markets, trades] [trades options]
33
+ Global Options:
34
+ -h --help This help.
35
+ -v --version Puts version and exits.
36
+ -j --json Use json's pretty print instead of puts.
37
+ -p --pp Use pp instead of puts.
38
+ -t --trace Do some tracing to STDERR.
39
+ #{MARKETS_HELP}
40
+ #{TRADES_HELP}
41
+ HELP
42
+
43
+ begin
44
+
45
+ OPTIONS = HELP_PARSER::HelpParser.new(VERSION, HELP)
46
+ WEBAPI = WebApi.new
47
+ WebApi.trace = STDERR if OPTIONS[:trace]
48
+ [['trades', 'http://api.bitcoincharts.com/v1/trades.csv', 'get'],
49
+ ['markets', 'http://api.bitcoincharts.com/v1/markets.json', 'get'],
50
+ ].each{|method, url, type| WEBAPI.add(method, url, type)}
51
+
52
+ COMMAND = ARGV.shift
53
+ case COMMAND
54
+ when 'markets'
55
+ ARGUMENTS = HELP_PARSER::HelpParser.new(VERSION, MARKETS_HELP)
56
+ RESPONSE = JSON.parse WEBAPI.markets
57
+ when 'trades'
58
+ ARGUMENTS = HELP_PARSER::HelpParser.new(VERSION, TRADES_HELP)
59
+ ARGUMENTS.defaults!(:symbol, DEFAULT_MARKET, DEFAULT_MARKET,)
60
+ ARGUMENTS.defaults!(:start, DEFAULT_START, DEFAULT_START)
61
+ RESPONSE = WEBAPI.trades(ARGUMENTS)
62
+ else
63
+ STDERR.puts 'Need "markets" or "trades" argument'
64
+ exit 64
65
+ end
66
+
67
+ if OPTIONS[:json]
68
+ puts JSON.pretty_generate RESPONSE
69
+ elsif OPTIONS[:pp]
70
+ pp RESPONSE
71
+ else
72
+ puts RESPONSE
73
+ end
74
+
75
+ rescue HELP_PARSER::UsageException, HELP_PARSER::UsageError
76
+ STDERR.puts $!
77
+ exit 64
78
+ end
data/examples/mtgox1 ADDED
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env ruby
2
+ require 'web_api'
3
+
4
+ STDERR.print "MtGox Key: "
5
+ KEY = STDIN.gets.strip
6
+ STDERR.print "MtGox Secret: "
7
+ SECRET = STDIN.gets.strip
8
+
9
+ AUTH = {:key=>KEY, :secret=>SECRET}
10
+ WEBAPI = WEB_API::Signed.new(AUTH)
11
+ # Note that this is api/1
12
+ WEBAPI.add('history', 'https://data.mtgox.com/api/1/generic/private/wallet/history', 'post')
13
+ puts WEBAPI.history({:currency=>'USD'})
data/examples/mtgox2 ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ require 'web_api'
3
+ require 'json'
4
+
5
+ STDERR.print "MtGox Key: "
6
+ KEY = STDIN.gets.strip
7
+ STDERR.print "MtGox Secret: "
8
+ SECRET = STDIN.gets.strip
9
+
10
+ AUTH = {:key=>KEY, :secret=>SECRET}
11
+
12
+ include WEB_API
13
+ WebApi.trace = STDERR
14
+ # Note that this is api/2, we need to properly set the base of the api:
15
+ WEBAPI = Signed2.new(AUTH, 'https://data.mtgox.com/api/2')
16
+ # Note that this is api/2, we need to properly set the path of the method:
17
+ WEBAPI.add('info', 'BTCUSD/money/info', 'post')
18
+ INFO = JSON.parse WEBAPI.info
19
+ puts JSON.pretty_generate INFO
data/examples/twitter ADDED
@@ -0,0 +1,35 @@
1
+ #!/usr/bin/env ruby
2
+ require 'oauth'
3
+ require 'web_api'
4
+ require 'json'
5
+
6
+ puts "You'll need to have your OAuth Key and Secret."
7
+ puts "Then you'll need to follow a link to get your pin."
8
+ puts "So first your API Key:"
9
+ print "Key: "
10
+ KEY = STDIN.gets.strip
11
+ puts "Now your API Secret:"
12
+ print "Secret: "
13
+ SECRET = STDIN.gets.strip
14
+
15
+
16
+ SITE = "http://api.twitter.com"
17
+ CONSUMER = OAuth::Consumer.new(KEY, SECRET, {:site => SITE})
18
+ REQUEST_TOKEN = CONSUMER.get_request_token
19
+
20
+
21
+ puts "Set your set your web browser this url:"
22
+ puts " " + REQUEST_TOKEN.authorize_url
23
+ puts "Then follow the instructions to authorize."
24
+ puts "Twitter should give you a pin number."
25
+ print "Pin: "
26
+ PIN = STDIN.gets.strip
27
+
28
+
29
+ ACCESS = REQUEST_TOKEN.get_access_token(:oauth_verifier => PIN)
30
+
31
+ WEBAPI = WEB_API::Client.new(ACCESS)
32
+ WEBAPI.add('timeline', 'https://api.twitter.com/1.1/statuses/home_timeline.json', 'get')
33
+ RESPONSE = JSON.parse WEBAPI.timeline
34
+
35
+ puts JSON.pretty_generate RESPONSE
data/examples/youtube ADDED
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env ruby
2
+ require 'signet/oauth_2/client'
3
+ # helpful blog:
4
+ # http://blog.mkristian.tk/2013/02/getting-up-and-running-with-oauth-using.html
5
+
6
+ print "Your client id: "
7
+ CLIENT_ID = STDIN.gets.strip
8
+ print "Your client secret: "
9
+ CLIENT_SECRET = STDIN.gets.strip
10
+
11
+ SIGNET = Signet::OAuth2::Client.new(
12
+ :authorization_uri => 'https://accounts.google.com/o/oauth2/auth',
13
+ :token_credential_uri => 'https://accounts.google.com/o/oauth2/token',
14
+ :client_id => CLIENT_ID,
15
+ :client_secret => CLIENT_SECRET,
16
+ :scope => 'https://gdata.youtube.com',
17
+ :redirect_uri => 'http://localhost:9292/oauth2callback'
18
+ )
19
+
20
+ puts "copy and paste authorization url to browser and follow intructions"
21
+ puts
22
+ puts SIGNET.authorization_uri
23
+ puts
24
+ puts "paste the code from redirect url from your browser into the console"
25
+ pin = gets
26
+
27
+ SIGNET.code = pin.strip
28
+ SIGNET.fetch_access_token!
29
+
30
+ require 'web_api'
31
+
32
+ WEBAPI = WEB_API::Signet.new(SIGNET)
33
+ WEBAPI.add('mysubs', 'https://www.googleapis.com/youtube/v3/subscriptions?part=snippet&mine=true', 'get')
34
+ puts WEBAPI.mysubs
@@ -0,0 +1,9 @@
1
+ @main
2
+ Feature: Main Feature
3
+
4
+ Background:
5
+ * Given main feature
6
+
7
+ Scenario:
8
+ * When main feature
9
+ * Then main feature
@@ -0,0 +1,13 @@
1
+ Given /^(w+) (.*)$/ do |given, condition|
2
+ condition.strip!
3
+ case given
4
+ when 'Given'
5
+ raise "'Given' form not defined."
6
+ when 'When'
7
+ raise "'When' form not defined."
8
+ when 'Then'
9
+ raise "'Then' form not defined."
10
+ else
11
+ raise "'#{given}' form not defined."
12
+ end
13
+ end
@@ -0,0 +1,28 @@
1
+ module WEB_API
2
+
3
+ class AuthMethod < WebApiMethod
4
+ attr_reader :auth
5
+ def initialize(auth, *args)
6
+ @auth = auth
7
+ super(*args)
8
+ end
9
+
10
+ def call(args)
11
+ args.unshift(@auth)
12
+ super(args)
13
+ end
14
+ end
15
+
16
+ class Auth < WebApi
17
+ attr_reader :auth
18
+ def initialize(auth, *args)
19
+ @auth = auth
20
+ super(*args)
21
+ end
22
+
23
+ def _add(method, uri, type)
24
+ webmethods[method] = AuthMethod.new(@auth, uri, type)
25
+ end
26
+ end
27
+
28
+ end # WEB_API
@@ -0,0 +1,27 @@
1
+ module WEB_API
2
+
3
+ class ClientMethod < WebApiMethod
4
+ attr_reader :client
5
+ def initialize(client, *args)
6
+ @client = client
7
+ super(*args)
8
+ end
9
+
10
+ def http
11
+ @client
12
+ end
13
+ end
14
+
15
+ class Client < WebApi
16
+ attr_reader :client
17
+ def initialize(client, *args)
18
+ @client = client
19
+ super(*args)
20
+ end
21
+
22
+ def _add(method, uri, type)
23
+ webmethods[method] = ClientMethod.new(@client, uri, type)
24
+ end
25
+ end
26
+
27
+ end # WEB_API
@@ -0,0 +1,31 @@
1
+ module WEB_API
2
+
3
+ class SignedMethod < AuthMethod
4
+ # This modified from sferik's mtgox gem's MtGox::Request#headers
5
+ def headers(args)
6
+ signature = Base64.strict_encode64(
7
+ OpenSSL::HMAC.digest 'sha512',
8
+ Base64.decode64(auth[:secret]),
9
+ data(args)
10
+ )
11
+ headers = super(args)
12
+ headers['Rest-Key'] = auth[:key]
13
+ headers['Rest-Sign'] = signature
14
+ Signed.trace.puts "headers:\n#{headers}" if Signed.trace
15
+ return headers
16
+ end
17
+
18
+ def call(args)
19
+ nonce = (Time.now.to_f * 1000000).to_i
20
+ args.push( {:nonce => nonce} )
21
+ super(args)
22
+ end
23
+ end
24
+
25
+ class Signed < Auth
26
+ def _add(method, uri, type)
27
+ webmethods[method] = SignedMethod.new(auth, uri, type)
28
+ end
29
+ end
30
+
31
+ end # WEB_API
@@ -0,0 +1,31 @@
1
+ module WEB_API
2
+
3
+ class Signed2Method < AuthMethod
4
+ def headers(args)
5
+ Signed2.trace.puts "path: #{path}" if Signed2.trace
6
+ signature = Base64.strict_encode64(
7
+ OpenSSL::HMAC.digest 'sha512',
8
+ Base64.decode64(auth[:secret]),
9
+ path + "\0" + data(args)
10
+ )
11
+ headers = super(args)
12
+ headers['Rest-Key'] = auth[:key]
13
+ headers['Rest-Sign'] = signature
14
+ Signed2.trace.puts "headers:\n#{headers}" if Signed2.trace
15
+ return headers
16
+ end
17
+
18
+ def call(args)
19
+ tonce = (Time.now.to_f * 1000000).to_i
20
+ args.push( {:tonce => tonce} )
21
+ super(args)
22
+ end
23
+ end
24
+
25
+ class Signed2 < Auth
26
+ def _add(method, uri, type)
27
+ webmethods[method] = Signed2Method.new(auth, uri, type)
28
+ end
29
+ end
30
+
31
+ end # WEB_API
@@ -0,0 +1,33 @@
1
+ module WEB_API
2
+
3
+ class SignetMethod < ClientMethod
4
+ OK = 200
5
+ def parse(response)
6
+ raise ResponseError, response.body unless response.status == OK
7
+ response.body
8
+ end
9
+
10
+ def fetch_protected_resource(url, headers=nil, type='GET', body=nil)
11
+ options = {:uri => url, :method => type}
12
+ options[:body] = body if body
13
+ options[:headers] = headers if headers
14
+ parse client.fetch_protected_resource(options)
15
+ end
16
+
17
+ def post(args)
18
+ fetch_protected_resource(uri.to_s, headers(args), 'POST', data(args))
19
+ end
20
+
21
+ def get(args)
22
+ url = "#{uri.scheme}://#{uri.host}#{pathquery(args)}"
23
+ fetch_protected_resource(url, headers(args))
24
+ end
25
+ end
26
+
27
+ class Signet < Client
28
+ def _add(method, uri, type)
29
+ webmethods[method] = SignetMethod.new(client, uri, type)
30
+ end
31
+ end
32
+
33
+ end # WEB_API
@@ -0,0 +1,3 @@
1
+ module WEB_API
2
+ VERSION = '0.0.0'
3
+ end
@@ -0,0 +1,130 @@
1
+ module WEB_API
2
+ class ResponseError < RuntimeError
3
+ end
4
+
5
+ class WebApiMethod
6
+
7
+ SCHEMES = ['http', 'https']
8
+ TYPES = [:post, :get]
9
+
10
+ attr_accessor :base, :path
11
+ attr_reader :uri, :type
12
+
13
+ def initialize(uri, type)
14
+ "Invalid scheme, #{uri.scheme}." unless SCHEMES.include?(uri.scheme)
15
+ "Invalid method type, #{type}." unless WebApiMethod::TYPES.include?(type)
16
+ @uri, @type, @base, @path = uri, type, "#{uri.scheme}://#{uri.host}", uri.path[1,-1]
17
+ end
18
+
19
+ # Escapes value's string representation for query string use.
20
+ def escape(value)
21
+ URI.escape(value.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]"))
22
+ end
23
+
24
+ # kv is a key, value pair
25
+ # [k, v]
26
+ def kv_map(kv)
27
+ kv.map{|value| escape(value)}.join('=')
28
+ end
29
+
30
+ # arg is a hash
31
+ # {k=>v,...}
32
+ def arg_map(arg)
33
+ arg.map{|kv| kv_map(kv) }.join('&')
34
+ end
35
+
36
+ # args is an array of hashes
37
+ # [ {k=>v,...}, {k=>v,...}, ...]
38
+ # The net result of this is a flattened query string
39
+ # "k=v&k=v..."
40
+ def args_map(args)
41
+ string = args.select{|arg| arg.length>0}.map{|arg| arg_map(arg)}.join('&')
42
+ WebApi.trace.puts "args_map: #{string}" if WebApi.trace
43
+ return string
44
+ end
45
+ alias data args_map
46
+ alias query_string args_map
47
+
48
+ def headers(args)
49
+ headers = {'User-Agent' => "ruby gem web_api #{VERSION}"}
50
+ WebApi.trace.puts "headers:\n#{headers}" if WebApi.trace
51
+ return headers
52
+ end
53
+
54
+ OK = '200'
55
+ def parse(response)
56
+ raise ResponseError, response.message unless response.code == OK
57
+ response.body
58
+ end
59
+
60
+ SSL = {'http' => false, 'https' => true}
61
+ def http
62
+ http = Net::HTTP.new(@uri.host, @uri.port)
63
+ http.use_ssl = SSL[@uri.scheme]
64
+ return http
65
+ end
66
+
67
+ def post(args)
68
+ parse http.post(@uri.path, data(args), headers(args))
69
+ end
70
+
71
+ def pathquery(args)
72
+ p, q0, q1 = @uri.path, @uri.query, query_string(args)
73
+ q = [q0, q1].select{|q| q && q.length>0}.join('&')
74
+ pq = (q.length>0)? p + '?' + q : p
75
+ WebApi.trace.puts "pathquery #{pq}" if WebApi.trace
76
+ return pq
77
+ end
78
+
79
+ def get(args)
80
+ parse http.get(pathquery(args), headers(args))
81
+ end
82
+
83
+ def call(args)
84
+ self.method(@type).call(args)
85
+ end
86
+ end
87
+
88
+ class WebApi
89
+
90
+ @@trace = nil
91
+ def self.trace
92
+ @@trace
93
+ end
94
+ def self.trace=(trace)
95
+ @@trace=trace
96
+ end
97
+
98
+ attr_reader :webmethods
99
+ def initialize(base=nil)
100
+ @base = base
101
+ @webmethods = {}
102
+ end
103
+
104
+ def method_missing(symbol , *args)
105
+ super unless @webmethods.has_key?(symbol)
106
+ @webmethods[symbol].call(args)
107
+ end
108
+
109
+ def _add(method, uri, type)
110
+ @webmethods[method] = WebApiMethod.new(uri, type)
111
+ end
112
+
113
+ def _url(path)
114
+ (@base)? File.join(@base, path) : path
115
+ end
116
+
117
+ def add(method, path, type=:get)
118
+ method = method.downcase.to_sym
119
+ uri = URI.parse _url(path)
120
+ type = type.downcase.to_sym
121
+ raise "#{method} already defined" if @webmethods.include?(method)
122
+ webmethod = _add(method, uri, type)
123
+ if @base
124
+ webmethod.base = @base
125
+ webmethod.path = path
126
+ end
127
+ end
128
+
129
+ end
130
+ end # WEB_API
data/lib/web_api.rb ADDED
@@ -0,0 +1,16 @@
1
+ # Standard Libraries
2
+ require 'uri'
3
+ require 'net/https'
4
+ require 'base64'
5
+
6
+ # WEB_API
7
+ require 'web_api/version.rb'
8
+ require 'web_api/web_api.rb'
9
+ require 'web_api/auth.rb'
10
+ require 'web_api/signed.rb'
11
+ require 'web_api/signed2.rb'
12
+ require 'web_api/client.rb'
13
+ require 'web_api/signet.rb'
14
+
15
+ # Requires:
16
+ #`ruby`
data/test/web_api.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'test/unit'
2
+ require 'web_api'
3
+
4
+ class TestWebApi
5
+ include WEB_API
6
+ # ...
7
+ end
data/web_api.gemspec ADDED
@@ -0,0 +1,58 @@
1
+ Gem::Specification.new do |s|
2
+
3
+ s.name = 'web_api'
4
+ s.version = '0.0.0'
5
+
6
+ s.homepage = 'https://github.com/carlosjhr64/web_api'
7
+
8
+ s.author = 'CarlosJHR64'
9
+ s.email = 'carlosjhr64@gmail.com'
10
+
11
+ s.date = '2013-12-27'
12
+ s.licenses = ['MIT']
13
+
14
+ s.description = <<DESCRIPTION
15
+ Ruby library for web api's.
16
+
17
+ In Beta. Testing not done. Only GET and POST implemented.
18
+ DESCRIPTION
19
+
20
+ s.summary = <<SUMMARY
21
+ Ruby library for web api's.
22
+ SUMMARY
23
+
24
+ s.extra_rdoc_files = ['README.rdoc']
25
+ s.rdoc_options = ["--main", "README.rdoc"]
26
+
27
+ s.require_paths = ["lib"]
28
+ s.files = %w(
29
+ History.txt
30
+ Manifest.txt
31
+ README.rdoc
32
+ TODO.txt
33
+ examples/bitcoincharts
34
+ examples/mtgox1
35
+ examples/mtgox2
36
+ examples/twitter
37
+ examples/youtube
38
+ features/main.feature
39
+ features/step_definitions/main_steps.rb
40
+ lib/web_api.rb
41
+ lib/web_api/auth.rb
42
+ lib/web_api/client.rb
43
+ lib/web_api/signed.rb
44
+ lib/web_api/signed2.rb
45
+ lib/web_api/signet.rb
46
+ lib/web_api/version.rb
47
+ lib/web_api/web_api.rb
48
+ test/web_api.rb
49
+ web_api.gemspec
50
+ )
51
+
52
+ s.add_development_dependency 'help_parser', '~> 1.1', '>= 1.1.0'
53
+ s.add_development_dependency 'oauth', '~> 0.4', '>= 0.4.7'
54
+ s.add_development_dependency 'signet', '~> 0.5', '>= 0.5.0'
55
+ s.add_development_dependency 'test-unit', '~> 2.5', '>= 2.5.5'
56
+ s.requirements << 'ruby: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]'
57
+
58
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: web_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.0
5
+ platform: ruby
6
+ authors:
7
+ - CarlosJHR64
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-27 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: help_parser
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.1'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.1.0
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: '1.1'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.1.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: oauth
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '0.4'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 0.4.7
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '0.4'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 0.4.7
53
+ - !ruby/object:Gem::Dependency
54
+ name: signet
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '0.5'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 0.5.0
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.5'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 0.5.0
73
+ - !ruby/object:Gem::Dependency
74
+ name: test-unit
75
+ requirement: !ruby/object:Gem::Requirement
76
+ requirements:
77
+ - - "~>"
78
+ - !ruby/object:Gem::Version
79
+ version: '2.5'
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 2.5.5
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.5'
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ version: 2.5.5
93
+ description: |
94
+ Ruby library for web api's.
95
+
96
+ In Beta. Testing not done. Only GET and POST implemented.
97
+ email: carlosjhr64@gmail.com
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files:
101
+ - README.rdoc
102
+ files:
103
+ - History.txt
104
+ - Manifest.txt
105
+ - README.rdoc
106
+ - TODO.txt
107
+ - examples/bitcoincharts
108
+ - examples/mtgox1
109
+ - examples/mtgox2
110
+ - examples/twitter
111
+ - examples/youtube
112
+ - features/main.feature
113
+ - features/step_definitions/main_steps.rb
114
+ - lib/web_api.rb
115
+ - lib/web_api/auth.rb
116
+ - lib/web_api/client.rb
117
+ - lib/web_api/signed.rb
118
+ - lib/web_api/signed2.rb
119
+ - lib/web_api/signet.rb
120
+ - lib/web_api/version.rb
121
+ - lib/web_api/web_api.rb
122
+ - test/web_api.rb
123
+ - web_api.gemspec
124
+ homepage: https://github.com/carlosjhr64/web_api
125
+ licenses:
126
+ - MIT
127
+ metadata: {}
128
+ post_install_message:
129
+ rdoc_options:
130
+ - "--main"
131
+ - README.rdoc
132
+ require_paths:
133
+ - lib
134
+ required_ruby_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ required_rubygems_version: !ruby/object:Gem::Requirement
140
+ requirements:
141
+ - - ">="
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ requirements:
145
+ - 'ruby: ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-linux]'
146
+ rubyforge_project:
147
+ rubygems_version: 2.0.3
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: Ruby library for web api's.
151
+ test_files: []