inkling_api 0.0.4 → 0.0.5
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/.gitignore +2 -0
- data/inkling_api.gemspec +0 -1
- data/lib/inkling_api.rb +70 -2
- data/lib/inkling_api/version.rb +1 -1
- data/spec/inkling_api_spec.rb +81 -3
- metadata +24 -35
data/.gitignore
CHANGED
data/inkling_api.gemspec
CHANGED
@@ -23,7 +23,6 @@ Gem::Specification.new do |s|
|
|
23
23
|
s.add_dependency('hashie', '~> 1.1.0')
|
24
24
|
s.add_dependency('activesupport', '~> 3.0.9')
|
25
25
|
s.add_dependency('i18n', '~> 0.6.0')
|
26
|
-
s.add_dependency('httparty', '~> 0.7.8')
|
27
26
|
s.add_dependency('builder', '~> 3.0.0')
|
28
27
|
|
29
28
|
s.add_development_dependency('rspec', '~> 2.6.0')
|
data/lib/inkling_api.rb
CHANGED
@@ -93,6 +93,10 @@ module InklingApi
|
|
93
93
|
def publish(path, params = nil)
|
94
94
|
connection.post(path)
|
95
95
|
end
|
96
|
+
|
97
|
+
def refund(path, params = nil)
|
98
|
+
connection.post(path)
|
99
|
+
end
|
96
100
|
end
|
97
101
|
|
98
102
|
module ApiMethods
|
@@ -117,13 +121,19 @@ module InklingApi
|
|
117
121
|
def delete(path, params = nil)
|
118
122
|
raw = params && params.delete(:raw)
|
119
123
|
response = super
|
120
|
-
raw ? response.
|
124
|
+
raw ? response.env[:raw_body] : response.body
|
121
125
|
end
|
122
126
|
|
123
127
|
def publish(path, params = nil)
|
124
128
|
raw = params && params.delete(:raw)
|
125
129
|
response = super
|
126
|
-
raw ? response.
|
130
|
+
raw ? response.env[:raw_body] : response.body
|
131
|
+
end
|
132
|
+
|
133
|
+
def refund(path, params = nil)
|
134
|
+
raw = params && params.delete(:raw)
|
135
|
+
response = super
|
136
|
+
raw ? response.env[:raw_body] : response.body
|
127
137
|
end
|
128
138
|
|
129
139
|
def market(market_id, *args)
|
@@ -188,6 +198,64 @@ module InklingApi
|
|
188
198
|
delete("memberships/#{membership_id}.xml", :content_type => 'application/xml')
|
189
199
|
end
|
190
200
|
|
201
|
+
def prices(*args)
|
202
|
+
get("prices.xml", *args)
|
203
|
+
end
|
204
|
+
|
205
|
+
def positions
|
206
|
+
get("positions.xml")
|
207
|
+
end
|
208
|
+
|
209
|
+
def create_answer(answer, symbol, market_id)
|
210
|
+
answer_data = { :'name' => answer,
|
211
|
+
:'symbol' => symbol
|
212
|
+
}
|
213
|
+
post("markets/#{market_id}/stocks.xml", answer_data.to_xml(:root => "stock"), :content_type => 'application/xml')
|
214
|
+
end
|
215
|
+
|
216
|
+
def answer(stock_id)
|
217
|
+
get("stocks/#{stock_id}.xml")
|
218
|
+
end
|
219
|
+
|
220
|
+
def update_answer(stock_id, answer, symbol, starting_price)
|
221
|
+
answer_data = { :'name' => answer,
|
222
|
+
:'symbol' => symbol,
|
223
|
+
:'starting-price' => starting_price
|
224
|
+
}
|
225
|
+
put("stocks/#{stock_id}.xml", answer_data.to_xml(:root => "stock"), :content_type => 'application/xml')
|
226
|
+
end
|
227
|
+
|
228
|
+
def delete_answer(stock_id)
|
229
|
+
delete("stocks/#{stock_id}.xml")
|
230
|
+
end
|
231
|
+
|
232
|
+
def cash_out(stock_id, price = 0)
|
233
|
+
cash_out_data = { :'price' => price }
|
234
|
+
post("stocks/#{stock_id}/resolutions.xml", cash_out_data.to_xml(:root => "resolution"), :content_type => 'application/xml')
|
235
|
+
end
|
236
|
+
|
237
|
+
def create_refund(stock_id)
|
238
|
+
refund("stocks/#{stock_id}/refunds.xml")
|
239
|
+
end
|
240
|
+
|
241
|
+
def trades
|
242
|
+
get("memberships/all/trades.xml")
|
243
|
+
end
|
244
|
+
|
245
|
+
def create_trade(stock_id, membership_id, quantity)
|
246
|
+
trade_data = { :'quantity' => quantity,
|
247
|
+
:'membership_id' => membership_id
|
248
|
+
}
|
249
|
+
post("stocks/#{stock_id}/trades.xml", trade_data.to_xml(:root => "trade"), :content_type => 'application/xml')
|
250
|
+
end
|
251
|
+
|
252
|
+
def quote(stock_id, membership_id, quantity)
|
253
|
+
quote_data = { :'quantity' => quantity,
|
254
|
+
:'membership_id' => membership_id
|
255
|
+
}
|
256
|
+
post("stocks/#{stock_id}/trades/quote.xml", quote_data.to_xml(:root => "trade"), :content_type => 'application/xml')
|
257
|
+
end
|
258
|
+
|
191
259
|
end
|
192
260
|
|
193
261
|
extend Configuration
|
data/lib/inkling_api/version.rb
CHANGED
data/spec/inkling_api_spec.rb
CHANGED
@@ -15,7 +15,10 @@ describe InklingApi do
|
|
15
15
|
end
|
16
16
|
|
17
17
|
%w( configure connection get post put delete markets market new_market
|
18
|
-
update_market delete_market publish_market
|
18
|
+
update_market delete_market publish_market memberships membership
|
19
|
+
create_membership update_membership update_balance delete_membership
|
20
|
+
prices positions answer create_answer update_answer delete_answer cash_out
|
21
|
+
create_refund).each do |meth|
|
19
22
|
it "should respond to #{meth}" do
|
20
23
|
inkling_api.should respond_to(meth.to_sym)
|
21
24
|
end
|
@@ -87,8 +90,8 @@ describe InklingApi do
|
|
87
90
|
|
88
91
|
it "should update a membership" do
|
89
92
|
membership_id = 210665
|
90
|
-
first_name = "
|
91
|
-
last_name = "
|
93
|
+
first_name = "Sports"
|
94
|
+
last_name = "Intel"
|
92
95
|
# NOTE: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
|
93
96
|
# However, Inkling Markets returns nothing when updating existing memberships
|
94
97
|
# lambda do
|
@@ -119,4 +122,79 @@ describe InklingApi do
|
|
119
122
|
# inkling_api.update_balance(balance_value, membership_id)
|
120
123
|
# end.should_not raise_error
|
121
124
|
end
|
125
|
+
|
126
|
+
it "should get a list of prices" do
|
127
|
+
inkling_api.prices.should be_a(Hash)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should get a list of positions" do
|
131
|
+
inkling_api.positions.should be_a(Hash)
|
132
|
+
end
|
133
|
+
|
134
|
+
it "should get a list of possbile answers" do
|
135
|
+
stock_id = 145841
|
136
|
+
inkling_api.answer(stock_id)
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should create a new answer for a market" do
|
140
|
+
market_id = 37810
|
141
|
+
answer = "Yes"
|
142
|
+
symbol = "YES"
|
143
|
+
inkling_api.create_answer(answer, symbol, market_id)
|
144
|
+
end
|
145
|
+
|
146
|
+
it "should update an answer" do
|
147
|
+
stock_id = 145841
|
148
|
+
symbol = "ALABA"
|
149
|
+
starting_price = 5000
|
150
|
+
answer = "Alabama"
|
151
|
+
# NOTE: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
|
152
|
+
# However, Inkling Markets returns nothing when updating a possible answer
|
153
|
+
# lambda do
|
154
|
+
# inkling_api.update_answer(stock_id, answer, symbol, starting_price)
|
155
|
+
# end.should_not raise_error
|
156
|
+
end
|
157
|
+
|
158
|
+
it "should delete an answer" do
|
159
|
+
stock_id = 147220
|
160
|
+
# NOTE: This will rise a <Farada::Error::ParsingError> because it expects XML to be returned
|
161
|
+
# However, Inkling Markets returns nothing when deleting a possible answer
|
162
|
+
# lambda do
|
163
|
+
# inkling_api.delete_answer(stock_id)
|
164
|
+
# end.should_not raise_error
|
165
|
+
end
|
166
|
+
|
167
|
+
it "should cash out on a possible answer" do
|
168
|
+
stock_id = 147219
|
169
|
+
inkling_api.cash_out(stock_id).should be_a(Hash)
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should create a refund on a possible answer" do
|
173
|
+
stock_id = 144196
|
174
|
+
lambda do
|
175
|
+
inkling_api.create_refund(stock_id)
|
176
|
+
end.should_not raise_error
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should get a list of all trades" do
|
180
|
+
inkling_api.trades.should be_a(Hash)
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should create a trade for a possible answer" do
|
184
|
+
stock_id = 147223
|
185
|
+
membership_id = 210690
|
186
|
+
quantity = 2
|
187
|
+
lambda do
|
188
|
+
inkling_api.create_trade(stock_id, membership_id, quantity)
|
189
|
+
end.should_not raise_error
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should create a quote for a possible answer" do
|
193
|
+
stock_id = 147223
|
194
|
+
membership_id = 210690
|
195
|
+
quantity = 2
|
196
|
+
lambda do
|
197
|
+
inkling_api.quote(stock_id, membership_id, quantity)
|
198
|
+
end.should_not raise_error
|
199
|
+
end
|
122
200
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inkling_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,12 +11,12 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2011-08-
|
14
|
+
date: 2011-08-19 00:00:00.000000000 +00:00
|
15
15
|
default_executable:
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: faraday
|
19
|
-
requirement: &
|
19
|
+
requirement: &13414660 !ruby/object:Gem::Requirement
|
20
20
|
none: false
|
21
21
|
requirements:
|
22
22
|
- - ~>
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
version: 0.7.4
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
|
-
version_requirements: *
|
27
|
+
version_requirements: *13414660
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: faraday-stack
|
30
|
-
requirement: &
|
30
|
+
requirement: &13414160 !ruby/object:Gem::Requirement
|
31
31
|
none: false
|
32
32
|
requirements:
|
33
33
|
- - ~>
|
@@ -35,10 +35,10 @@ dependencies:
|
|
35
35
|
version: 0.1.3
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
|
-
version_requirements: *
|
38
|
+
version_requirements: *13414160
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
40
|
name: hashie
|
41
|
-
requirement: &
|
41
|
+
requirement: &13413700 !ruby/object:Gem::Requirement
|
42
42
|
none: false
|
43
43
|
requirements:
|
44
44
|
- - ~>
|
@@ -46,10 +46,10 @@ dependencies:
|
|
46
46
|
version: 1.1.0
|
47
47
|
type: :runtime
|
48
48
|
prerelease: false
|
49
|
-
version_requirements: *
|
49
|
+
version_requirements: *13413700
|
50
50
|
- !ruby/object:Gem::Dependency
|
51
51
|
name: activesupport
|
52
|
-
requirement: &
|
52
|
+
requirement: &13413240 !ruby/object:Gem::Requirement
|
53
53
|
none: false
|
54
54
|
requirements:
|
55
55
|
- - ~>
|
@@ -57,10 +57,10 @@ dependencies:
|
|
57
57
|
version: 3.0.9
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
|
-
version_requirements: *
|
60
|
+
version_requirements: *13413240
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: i18n
|
63
|
-
requirement: &
|
63
|
+
requirement: &13412780 !ruby/object:Gem::Requirement
|
64
64
|
none: false
|
65
65
|
requirements:
|
66
66
|
- - ~>
|
@@ -68,21 +68,10 @@ dependencies:
|
|
68
68
|
version: 0.6.0
|
69
69
|
type: :runtime
|
70
70
|
prerelease: false
|
71
|
-
version_requirements: *
|
72
|
-
- !ruby/object:Gem::Dependency
|
73
|
-
name: httparty
|
74
|
-
requirement: &11363320 !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
|
-
requirements:
|
77
|
-
- - ~>
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: 0.7.8
|
80
|
-
type: :runtime
|
81
|
-
prerelease: false
|
82
|
-
version_requirements: *11363320
|
71
|
+
version_requirements: *13412780
|
83
72
|
- !ruby/object:Gem::Dependency
|
84
73
|
name: builder
|
85
|
-
requirement: &
|
74
|
+
requirement: &13412320 !ruby/object:Gem::Requirement
|
86
75
|
none: false
|
87
76
|
requirements:
|
88
77
|
- - ~>
|
@@ -90,10 +79,10 @@ dependencies:
|
|
90
79
|
version: 3.0.0
|
91
80
|
type: :runtime
|
92
81
|
prerelease: false
|
93
|
-
version_requirements: *
|
82
|
+
version_requirements: *13412320
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: rspec
|
96
|
-
requirement: &
|
85
|
+
requirement: &13411860 !ruby/object:Gem::Requirement
|
97
86
|
none: false
|
98
87
|
requirements:
|
99
88
|
- - ~>
|
@@ -101,10 +90,10 @@ dependencies:
|
|
101
90
|
version: 2.6.0
|
102
91
|
type: :development
|
103
92
|
prerelease: false
|
104
|
-
version_requirements: *
|
93
|
+
version_requirements: *13411860
|
105
94
|
- !ruby/object:Gem::Dependency
|
106
95
|
name: rspec-core
|
107
|
-
requirement: &
|
96
|
+
requirement: &13411400 !ruby/object:Gem::Requirement
|
108
97
|
none: false
|
109
98
|
requirements:
|
110
99
|
- - ~>
|
@@ -112,10 +101,10 @@ dependencies:
|
|
112
101
|
version: 2.6.0
|
113
102
|
type: :development
|
114
103
|
prerelease: false
|
115
|
-
version_requirements: *
|
104
|
+
version_requirements: *13411400
|
116
105
|
- !ruby/object:Gem::Dependency
|
117
106
|
name: json_spec
|
118
|
-
requirement: &
|
107
|
+
requirement: &13410940 !ruby/object:Gem::Requirement
|
119
108
|
none: false
|
120
109
|
requirements:
|
121
110
|
- - ~>
|
@@ -123,10 +112,10 @@ dependencies:
|
|
123
112
|
version: 0.6.0
|
124
113
|
type: :development
|
125
114
|
prerelease: false
|
126
|
-
version_requirements: *
|
115
|
+
version_requirements: *13410940
|
127
116
|
- !ruby/object:Gem::Dependency
|
128
117
|
name: shoulda
|
129
|
-
requirement: &
|
118
|
+
requirement: &13410480 !ruby/object:Gem::Requirement
|
130
119
|
none: false
|
131
120
|
requirements:
|
132
121
|
- - ~>
|
@@ -134,10 +123,10 @@ dependencies:
|
|
134
123
|
version: 2.11.3
|
135
124
|
type: :development
|
136
125
|
prerelease: false
|
137
|
-
version_requirements: *
|
126
|
+
version_requirements: *13410480
|
138
127
|
- !ruby/object:Gem::Dependency
|
139
128
|
name: ruby-debug19
|
140
|
-
requirement: &
|
129
|
+
requirement: &13410100 !ruby/object:Gem::Requirement
|
141
130
|
none: false
|
142
131
|
requirements:
|
143
132
|
- - ! '>='
|
@@ -145,7 +134,7 @@ dependencies:
|
|
145
134
|
version: '0'
|
146
135
|
type: :development
|
147
136
|
prerelease: false
|
148
|
-
version_requirements: *
|
137
|
+
version_requirements: *13410100
|
149
138
|
description:
|
150
139
|
email:
|
151
140
|
- david@isotope11.com
|