tradeking 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/{LICENSE.txt → MIT-LICENSE} +1 -1
- data/README.md +34 -0
- data/Rakefile +2 -26
- data/lib/tradeking.rb +7 -0
- data/lib/tradeking/client.rb +20 -6
- data/lib/tradeking/http/request.rb +65 -0
- data/lib/tradeking/http/response.rb +13 -0
- data/lib/tradeking/version.rb +3 -0
- data/test/helper.rb +24 -12
- data/test/support/responses/delete_watchlists_One.json +1 -0
- data/test/support/responses/get_market_news_search.json +1 -0
- data/test/support/responses/get_watchlists.json +1 -0
- data/test/support/responses/get_wrongpath.json +9 -0
- data/test/support/responses/post_watchlists.json +1 -0
- data/test/tradeking_test.rb +47 -0
- metadata +73 -66
- data/.document +0 -5
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -30
- data/README.rdoc +0 -13
- data/VERSION +0 -1
- data/test/test_tradeking.rb +0 -7
- data/tradeking.gemspec +0 -66
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 81fef12e52d1d822a2c95927fa630f1f1b728674
|
4
|
+
data.tar.gz: 4e6fe664461acd7a1004cd68402a9edba939716b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 307b7ab43ca96992f544b6555a650e58c95f1f79c2f55e86baf66dce05038ed397e1709ca3212b56651afe7098f5baf23159509e929afb7f175c3dae2965cf44
|
7
|
+
data.tar.gz: bb392ffc1ba9f9e27fe334eee8026f0322f01823e2cb476ba94c710050bd8c0e5df482f2eee4938eb821ea3916da11907bcd20444df878c34ac0a631bcebb997
|
data/{LICENSE.txt → MIT-LICENSE}
RENAMED
data/README.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# Tradeking API wrapper
|
2
|
+
|
3
|
+
Ruby wrapper for a Tradeking API.
|
4
|
+
Allows access to a Tradeking account's rest operations. Check out the [api documentation](https://developers.tradeking.com/documentation/getting-started)
|
5
|
+
|
6
|
+
|
7
|
+
## Basic Usage
|
8
|
+
|
9
|
+
API wrapper can be used from the command line or as part of a Ruby web framework. First install the gem:
|
10
|
+
|
11
|
+
gem install tradeking
|
12
|
+
|
13
|
+
Instantiate a client with your tradeking credentials. You can get it [here](https://developers.tradeking.com/applications)
|
14
|
+
|
15
|
+
client = Tradeking::Client.new(consumer_key: "YOUR_KEY", consumer_secret: "YOUR_SECRET", access_token: "TOKEN", access_token_secret: "TOKEN_SECRET")
|
16
|
+
|
17
|
+
Then access API operations, you can find a full list of operations [here](https://developers.tradeking.com/documentation/request-structure)
|
18
|
+
|
19
|
+
client.get("market/options/expirations")
|
20
|
+
client.get("market/news/search", {keywords: "ford"})
|
21
|
+
client.post("watchlists", {id: "MyNewWatchlist", symbols: "AAPL,MSFT"})
|
22
|
+
client.delete("watchlists/MyList")
|
23
|
+
|
24
|
+
|
25
|
+
## Testing
|
26
|
+
|
27
|
+
You should be able to run the test suite:
|
28
|
+
|
29
|
+
rake
|
30
|
+
|
31
|
+
You can also run just one test file:
|
32
|
+
|
33
|
+
rake test test/tradeking_test.rb
|
34
|
+
|
data/Rakefile
CHANGED
@@ -11,35 +11,11 @@ rescue Bundler::BundlerError => e
|
|
11
11
|
end
|
12
12
|
require 'rake'
|
13
13
|
|
14
|
-
require 'jeweler'
|
15
|
-
Jeweler::Tasks.new do |gem|
|
16
|
-
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
-
gem.name = "tradeking"
|
18
|
-
gem.homepage = "http://github.com/shamne/tradeking"
|
19
|
-
gem.license = "MIT"
|
20
|
-
gem.summary = "Tradeking oauth api library for ruby"
|
21
|
-
gem.description = "Tradeking oauth api library for ruby"
|
22
|
-
gem.email = "alexander.shamne@gmail.com"
|
23
|
-
gem.authors = ["Alexander Shamne"]
|
24
|
-
# dependencies defined in Gemfile
|
25
|
-
end
|
26
|
-
Jeweler::RubygemsDotOrgTasks.new
|
27
|
-
|
28
14
|
require 'rake/testtask'
|
29
15
|
Rake::TestTask.new(:test) do |test|
|
30
|
-
test.libs << '
|
31
|
-
test.pattern = 'test
|
16
|
+
test.libs << 'test'
|
17
|
+
test.pattern = 'test/**/*_test.rb'
|
32
18
|
test.verbose = true
|
33
19
|
end
|
34
20
|
|
35
21
|
task :default => :test
|
36
|
-
|
37
|
-
require 'rdoc/task'
|
38
|
-
Rake::RDocTask.new do |rdoc|
|
39
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
40
|
-
|
41
|
-
rdoc.rdoc_dir = 'rdoc'
|
42
|
-
rdoc.title = "tradeking #{version}"
|
43
|
-
rdoc.rdoc_files.include('README*')
|
44
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
45
|
-
end
|
data/lib/tradeking.rb
CHANGED
data/lib/tradeking/client.rb
CHANGED
@@ -1,13 +1,27 @@
|
|
1
|
+
require 'tradeking/http/request'
|
2
|
+
require 'tradeking/http/response'
|
3
|
+
|
1
4
|
module Tradeking
|
2
5
|
class Client
|
3
|
-
|
4
|
-
|
6
|
+
|
7
|
+
include Tradeking::Http::Request
|
8
|
+
include Tradeking::Http::Response
|
9
|
+
|
10
|
+
# Creates an instance of an API client
|
11
|
+
#
|
12
|
+
# ==== Attributes
|
13
|
+
# * +options+ - Access credentials hash, required keys are: consumer_key, consumer_secret, access_token, access_token_secret
|
14
|
+
# ==== Example
|
15
|
+
# client = Tradeking::Client.new({consumer_key: "abc", consumer_secret: "abc", access_token: "abc", access_token_secret: "abc"})
|
16
|
+
def initialize options = {}
|
5
17
|
@consumer_key = options[:consumer_key]
|
6
18
|
@consumer_secret = options[:consumer_secret]
|
7
|
-
@
|
8
|
-
@
|
9
|
-
|
19
|
+
@access_token = options[:access_token]
|
20
|
+
@access_token_secret = options[:access_token_secret]
|
21
|
+
|
22
|
+
@oauth_consumer = OAuth::Consumer.new @consumer_key, @consumer_secret, { :site => API_URI }
|
23
|
+
@oauth_access_token = OAuth::AccessToken.new(@oauth_consumer, @access_token, @access_token_secret)
|
10
24
|
end
|
11
|
-
|
25
|
+
|
12
26
|
end
|
13
27
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module Tradeking
|
2
|
+
module Http
|
3
|
+
module Request
|
4
|
+
|
5
|
+
def request args
|
6
|
+
attrs = args[0] || {}
|
7
|
+
headers = args[1] || {}
|
8
|
+
response(yield(attrs, headers))
|
9
|
+
end
|
10
|
+
|
11
|
+
# GET API accessor
|
12
|
+
# Will make a GET request to a specified operation path
|
13
|
+
# You can find a list of all available GET requests here: https://developers.tradeking.com/documentation/getting-started
|
14
|
+
#
|
15
|
+
# ==== Attributes
|
16
|
+
# * +operation+ - Operation path without API version ("/v1/")
|
17
|
+
# * +*args+ - Attributes and headers
|
18
|
+
# ==== Example
|
19
|
+
# client.get("market/options/expirations")
|
20
|
+
# client.get("market/news/search", {keywords: "ford"}, {'Accept' => 'application/json'})
|
21
|
+
def get operation, *args
|
22
|
+
request(args) do |attrs, headers|
|
23
|
+
uri = "/#{API_VERSION}/#{operation}.#{API_FORMAT}"
|
24
|
+
uri << "?#{URI.encode_www_form(attrs.to_a)}" unless attrs.empty?
|
25
|
+
@oauth_access_token.send(:get, uri, headers)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# POST API accessor
|
30
|
+
# Will make a POST request to a specified operation path
|
31
|
+
# You can find a list of all available POST requests here: https://developers.tradeking.com/documentation/getting-started
|
32
|
+
#
|
33
|
+
# ==== Attributes
|
34
|
+
# * +operation+ - Operation path without API version ("/v1/")
|
35
|
+
# * +*args+ - Attributes and headers
|
36
|
+
# ==== Example
|
37
|
+
# client.post("watchlists", {id: "MyNewWatchlist", symbols: "AAPL,MSFT"})
|
38
|
+
def post operation, *args
|
39
|
+
request(args) do |attrs, headers|
|
40
|
+
@oauth_access_token.send(:post, "/#{API_VERSION}/#{operation}.#{API_FORMAT}", attrs, headers)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# DELETE API accessor
|
45
|
+
# Will make a DELETE request to a specified operation path
|
46
|
+
# You can find a list of all available DELETE requests here: https://developers.tradeking.com/documentation/getting-started
|
47
|
+
#
|
48
|
+
# ==== Attributes
|
49
|
+
# * +operation+ - Operation path without API version ("/v1/")
|
50
|
+
# * +*args+ - Attributes and headers
|
51
|
+
# ==== Example
|
52
|
+
# client.delete("watchlists/MyList")
|
53
|
+
def delete operation, *args
|
54
|
+
request(args) do |attrs, headers|
|
55
|
+
@oauth_access_token.send(:delete, "/#{API_VERSION}/#{operation}.#{API_FORMAT}", headers)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def put
|
60
|
+
# Not implemented on a Tradeking API
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/test/helper.rb
CHANGED
@@ -1,18 +1,30 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'bundler'
|
3
|
-
begin
|
4
|
-
Bundler.setup(:default, :development)
|
5
|
-
rescue Bundler::BundlerError => e
|
6
|
-
$stderr.puts e.message
|
7
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
8
|
-
exit e.status_code
|
9
|
-
end
|
10
1
|
require 'test/unit'
|
11
|
-
require '
|
2
|
+
require 'webmock/test_unit'
|
12
3
|
|
13
|
-
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
15
4
|
require 'tradeking'
|
16
5
|
|
17
6
|
class Test::Unit::TestCase
|
7
|
+
|
8
|
+
ACCESS_CREDENTIALS = {
|
9
|
+
consumer_key: "abc",
|
10
|
+
consumer_secret: "abc",
|
11
|
+
access_token: "abc",
|
12
|
+
access_token_secret: "abc"
|
13
|
+
}
|
14
|
+
|
15
|
+
def stub_v1_api_call type, operation, attrs={}
|
16
|
+
filename = "#{type}_"
|
17
|
+
filename << operation.split("?").first.gsub("/","_")
|
18
|
+
stub_request(type, 'https://api.tradeking.com/v1/' << operation)
|
19
|
+
.with(:body => attrs.empty? ? {} : attrs)
|
20
|
+
.to_return(
|
21
|
+
:body => expected_body(filename),
|
22
|
+
:status => 200
|
23
|
+
)
|
24
|
+
end
|
25
|
+
|
26
|
+
def expected_body filename
|
27
|
+
File.read(File.join(File.dirname(__FILE__), 'support/responses/' << filename))
|
28
|
+
end
|
29
|
+
|
18
30
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response":{"@id":"e6a09a4:142348f1617:2d18","elapsedtime":"0","watchlists":{"watchlist":[{"id":"Another one"},{"id":"DEFAULT"}]}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response":{"@id":"63980f49:14234eeadc3:10de","articles":{"article":[{"date":"11\/07 17:28","headline":"ProShares Ultra QQQ Falls 3.77% on Heavy Volume: Watch For Potential Rebound","id":"fe36fbc862728a4cdee62958d861c591","story":null},{"date":"11\/07 17:27","headline":"ProShares Ultra QQQ Falls 3.77% on Heavy Volume: Watch For Potential Rebound","id":"69e3b51abd65cf2a20210c88214b4152","story":null},{"date":"11\/07 17:26","headline":"ProShares Ultra QQQ Falls 3.77% on Heavy Volume: Watch For Potential Rebound","id":"b767eec2aad61f631a14682cf47c6937","story":null},{"date":"11\/06 11:05","headline":"ProShares UltraPro QQQ Shares Up 15.9% Since SmarTrend's Buy Recommendation (TQQQ)","id":"5648ed8688f5e22f8ec7be06911e3349","story":null},{"date":"10\/31 07:33","headline":"Invesco Reports Results for Three Months Ended September 30, 2013","id":"fc83050f3ec446a18f62b6f257a367de","story":null},{"date":"10\/30 10:00","headline":"Viacom Inc. [VIA] With Spike TV's \"BELLATOR\" to Ring The NASDAQ Stock Market Closing Bell","id":"28ca3574a54a3ac25f2765274a1cc807","story":null},{"date":"10\/28 10:03","headline":"VimpelCom added to NASDAQ-100 Index","id":"86f267f69a83231f71b751b34351e506","story":null},{"date":"10\/25 17:34","headline":"Watch for ProShares UltraPro QQQ to Potentially Pullback After Gaining 2.00% Yesterday","id":"4b6667c4c8f10a4393119f0ca83e6f8d","story":null},{"date":"10\/25 17:02","headline":"Look for Shares of ProShares Ultra QQQ to Potentially Pullback after Yesterday's 1.34% Rise","id":"728c00cd7c3f01d153925a261597b4cd","story":null},{"date":"10\/25 17:02","headline":"ProShares Ultra QQQ Rises 1.34% on Heavy Volume: Watch For Potential Pullback","id":"2c6d7ed6cd8220b0cdfad68c64e1abf2","story":null}]}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response":{"@id":"e6a09a4:123:5cb4","elapsedtime":"0","watchlists":{"watchlist":[{"id":"Another one"},{"id":"DEFAULT"},{"id":"One"}]}}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"response":{"@id":"e6a09a4:123:6a0f","elapsedtime":"0","watchlists":{"watchlist":[{"id":"Another one"},{"id":"DEFAULT"},{"id":"One"}]}}}
|
@@ -0,0 +1,47 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestTradeking < Test::Unit::TestCase
|
4
|
+
|
5
|
+
def setup
|
6
|
+
@client = Tradeking::Client.new(ACCESS_CREDENTIALS)
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_client_instance_vars
|
10
|
+
assert_equal @client.instance_variable_get(:@oauth_consumer).class, OAuth::Consumer
|
11
|
+
assert_equal @client.instance_variable_get(:@oauth_access_token).class, OAuth::AccessToken
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_api_get
|
15
|
+
stub_request = stub_v1_api_call(:get, "watchlists.json")
|
16
|
+
assert_equal JSON.parse(expected_body("get_watchlists.json"))["response"], @client.get("watchlists")
|
17
|
+
assert_requested(stub_request)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_api_get_with_attributes
|
21
|
+
params = {keywords: "qqq"}
|
22
|
+
stub_request = stub_v1_api_call(:get, "market/news/search.json?keywords=qqq")
|
23
|
+
assert_equal JSON.parse(expected_body("get_market_news_search.json"))["response"], @client.get("market/news/search", params)
|
24
|
+
assert_requested(stub_request)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_api_get_wrongpath
|
28
|
+
stub_request = stub_v1_api_call(:get, "wrongpath.json")
|
29
|
+
exception = assert_raise(RuntimeError) {@client.get("wrongpath")}
|
30
|
+
assert_equal("Service Operation Identification Failure", exception.message)
|
31
|
+
assert_requested(stub_request)
|
32
|
+
end
|
33
|
+
|
34
|
+
def test_api_post
|
35
|
+
params = {id: "New watchlist", symbols: "AAPL,MSFT"}
|
36
|
+
stub_request = stub_v1_api_call(:post, "watchlists.json", params)
|
37
|
+
assert_equal JSON.parse(expected_body("post_watchlists.json"))["response"], @client.post("watchlists", params)
|
38
|
+
assert_requested(stub_request)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_api_delete
|
42
|
+
stub_request = stub_v1_api_call(:delete, "watchlists/One.json")
|
43
|
+
assert_equal JSON.parse(expected_body("delete_watchlists_One.json"))["response"], @client.delete("watchlists/One")
|
44
|
+
assert_requested(stub_request)
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
metadata
CHANGED
@@ -1,128 +1,135 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tradeking
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
-
|
7
|
+
- Sasha Shamne
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2013-11-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: oauth
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: json
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
33
|
version: '0'
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: shoulda
|
38
|
-
requirement: &2156739400 !ruby/object:Gem::Requirement
|
39
|
-
none: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
37
|
requirements:
|
41
|
-
- -
|
38
|
+
- - '>='
|
42
39
|
- !ruby/object:Gem::Version
|
43
40
|
version: '0'
|
44
|
-
type: :development
|
45
|
-
prerelease: false
|
46
|
-
version_requirements: *2156739400
|
47
41
|
- !ruby/object:Gem::Dependency
|
48
42
|
name: rdoc
|
49
|
-
requirement:
|
50
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
51
44
|
requirements:
|
52
|
-
- -
|
45
|
+
- - '>='
|
53
46
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
47
|
+
version: '0'
|
55
48
|
type: :development
|
56
49
|
prerelease: false
|
57
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
58
55
|
- !ruby/object:Gem::Dependency
|
59
|
-
name:
|
60
|
-
requirement:
|
61
|
-
none: false
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
62
58
|
requirements:
|
63
|
-
- -
|
59
|
+
- - '>='
|
64
60
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
61
|
+
version: '0'
|
66
62
|
type: :development
|
67
63
|
prerelease: false
|
68
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
71
|
-
requirement:
|
72
|
-
none: false
|
70
|
+
name: webmock
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
73
72
|
requirements:
|
74
|
-
- -
|
73
|
+
- - '>='
|
75
74
|
- !ruby/object:Gem::Version
|
76
|
-
version:
|
75
|
+
version: '0'
|
77
76
|
type: :development
|
78
77
|
prerelease: false
|
79
|
-
version_requirements:
|
80
|
-
|
81
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
description: Allows access to a Tradeking account's rest operations https://developers.tradeking.com/documentation/getting-started
|
84
|
+
email:
|
85
|
+
- a@shamne.com
|
82
86
|
executables: []
|
83
87
|
extensions: []
|
84
|
-
extra_rdoc_files:
|
85
|
-
- LICENSE.txt
|
86
|
-
- README.rdoc
|
88
|
+
extra_rdoc_files: []
|
87
89
|
files:
|
88
|
-
- .document
|
89
|
-
- Gemfile
|
90
|
-
- Gemfile.lock
|
91
|
-
- LICENSE.txt
|
92
|
-
- README.rdoc
|
93
|
-
- Rakefile
|
94
|
-
- VERSION
|
95
|
-
- lib/tradeking.rb
|
96
90
|
- lib/tradeking/client.rb
|
91
|
+
- lib/tradeking/http/request.rb
|
92
|
+
- lib/tradeking/http/response.rb
|
93
|
+
- lib/tradeking/version.rb
|
94
|
+
- lib/tradeking.rb
|
95
|
+
- MIT-LICENSE
|
96
|
+
- Rakefile
|
97
|
+
- README.md
|
97
98
|
- test/helper.rb
|
98
|
-
- test/
|
99
|
-
-
|
100
|
-
|
101
|
-
|
102
|
-
-
|
99
|
+
- test/support/responses/delete_watchlists_One.json
|
100
|
+
- test/support/responses/get_market_news_search.json
|
101
|
+
- test/support/responses/get_watchlists.json
|
102
|
+
- test/support/responses/get_wrongpath.json
|
103
|
+
- test/support/responses/post_watchlists.json
|
104
|
+
- test/tradeking_test.rb
|
105
|
+
homepage:
|
106
|
+
licenses: []
|
107
|
+
metadata: {}
|
103
108
|
post_install_message:
|
104
109
|
rdoc_options: []
|
105
110
|
require_paths:
|
106
111
|
- lib
|
107
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
108
|
-
none: false
|
109
113
|
requirements:
|
110
|
-
- -
|
114
|
+
- - '>='
|
111
115
|
- !ruby/object:Gem::Version
|
112
116
|
version: '0'
|
113
|
-
segments:
|
114
|
-
- 0
|
115
|
-
hash: -1839360790902183466
|
116
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
117
|
-
none: false
|
118
118
|
requirements:
|
119
|
-
- -
|
119
|
+
- - '>='
|
120
120
|
- !ruby/object:Gem::Version
|
121
121
|
version: '0'
|
122
122
|
requirements: []
|
123
123
|
rubyforge_project:
|
124
|
-
rubygems_version:
|
124
|
+
rubygems_version: 2.0.3
|
125
125
|
signing_key:
|
126
|
-
specification_version:
|
127
|
-
summary:
|
128
|
-
test_files:
|
126
|
+
specification_version: 4
|
127
|
+
summary: Ruby wrapper for a Tradeking API
|
128
|
+
test_files:
|
129
|
+
- test/helper.rb
|
130
|
+
- test/support/responses/delete_watchlists_One.json
|
131
|
+
- test/support/responses/get_market_news_search.json
|
132
|
+
- test/support/responses/get_watchlists.json
|
133
|
+
- test/support/responses/get_wrongpath.json
|
134
|
+
- test/support/responses/post_watchlists.json
|
135
|
+
- test/tradeking_test.rb
|
data/.document
DELETED
data/Gemfile
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
source "http://rubygems.org"
|
2
|
-
# Add dependencies required to use your gem here.
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
-
|
6
|
-
# Add dependencies to develop your gem here.
|
7
|
-
# Include everything needed to run rake, tests, features, etc.
|
8
|
-
|
9
|
-
gem "oauth"
|
10
|
-
gem "json"
|
11
|
-
|
12
|
-
group :development do
|
13
|
-
gem "shoulda", ">= 0"
|
14
|
-
gem "rdoc", "~> 3.12"
|
15
|
-
gem "bundler", "~> 1.0.0"
|
16
|
-
gem "jeweler", "~> 1.8.3"
|
17
|
-
end
|
data/Gemfile.lock
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
GEM
|
2
|
-
remote: http://rubygems.org/
|
3
|
-
specs:
|
4
|
-
git (1.2.5)
|
5
|
-
jeweler (1.8.3)
|
6
|
-
bundler (~> 1.0)
|
7
|
-
git (>= 1.2.5)
|
8
|
-
rake
|
9
|
-
rdoc
|
10
|
-
json (1.6.5)
|
11
|
-
oauth (0.4.5)
|
12
|
-
rake (0.9.2.2)
|
13
|
-
rdoc (3.12)
|
14
|
-
json (~> 1.4)
|
15
|
-
shoulda (3.0.1)
|
16
|
-
shoulda-context (~> 1.0.0)
|
17
|
-
shoulda-matchers (~> 1.0.0)
|
18
|
-
shoulda-context (1.0.0)
|
19
|
-
shoulda-matchers (1.0.0)
|
20
|
-
|
21
|
-
PLATFORMS
|
22
|
-
ruby
|
23
|
-
|
24
|
-
DEPENDENCIES
|
25
|
-
bundler (~> 1.0.0)
|
26
|
-
jeweler (~> 1.8.3)
|
27
|
-
json
|
28
|
-
oauth
|
29
|
-
rdoc (~> 3.12)
|
30
|
-
shoulda
|
data/README.rdoc
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
= tradeking
|
2
|
-
|
3
|
-
Description goes here.
|
4
|
-
|
5
|
-
== Contributing to tradeking
|
6
|
-
|
7
|
-
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
8
|
-
* Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
|
9
|
-
* Fork the project.
|
10
|
-
* Start a feature/bugfix branch.
|
11
|
-
* Commit and push until you are happy with your contribution.
|
12
|
-
* Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
|
13
|
-
* Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.0.1
|
data/test/test_tradeking.rb
DELETED
data/tradeking.gemspec
DELETED
@@ -1,66 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = "tradeking"
|
8
|
-
s.version = "0.0.1"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Alexander Shamne"]
|
12
|
-
s.date = "2012-03-12"
|
13
|
-
s.description = "Tradeking oauth api library for ruby"
|
14
|
-
s.email = "alexander.shamne@gmail.com"
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE.txt",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
"Gemfile",
|
22
|
-
"Gemfile.lock",
|
23
|
-
"LICENSE.txt",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"lib/tradeking.rb",
|
28
|
-
"lib/tradeking/client.rb",
|
29
|
-
"test/helper.rb",
|
30
|
-
"test/test_tradeking.rb",
|
31
|
-
"tradeking.gemspec"
|
32
|
-
]
|
33
|
-
s.homepage = "http://github.com/shamne/tradeking"
|
34
|
-
s.licenses = ["MIT"]
|
35
|
-
s.require_paths = ["lib"]
|
36
|
-
s.rubygems_version = "1.8.10"
|
37
|
-
s.summary = "Tradeking oauth api library for ruby"
|
38
|
-
|
39
|
-
if s.respond_to? :specification_version then
|
40
|
-
s.specification_version = 3
|
41
|
-
|
42
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
43
|
-
s.add_runtime_dependency(%q<oauth>, [">= 0"])
|
44
|
-
s.add_runtime_dependency(%q<json>, [">= 0"])
|
45
|
-
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
46
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
47
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
48
|
-
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
49
|
-
else
|
50
|
-
s.add_dependency(%q<oauth>, [">= 0"])
|
51
|
-
s.add_dependency(%q<json>, [">= 0"])
|
52
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
53
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
54
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
56
|
-
end
|
57
|
-
else
|
58
|
-
s.add_dependency(%q<oauth>, [">= 0"])
|
59
|
-
s.add_dependency(%q<json>, [">= 0"])
|
60
|
-
s.add_dependency(%q<shoulda>, [">= 0"])
|
61
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
62
|
-
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
-
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|