inkling_api 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -3,3 +3,5 @@
3
3
  Gemfile.lock
4
4
  pkg/*
5
5
  lib/inkling_api_test_config.rb
6
+ .rvmrc
7
+ bin/httparty
@@ -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')
@@ -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.enc[:raw_body] : response.body
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.enc[:raw_body] : response.body
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
@@ -1,3 +1,3 @@
1
1
  module InklingApi
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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).each do |meth|
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 = "Pamela"
91
- last_name = "Fetterolf"
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
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-16 00:00:00.000000000 +00:00
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: &11365660 !ruby/object:Gem::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: *11365660
27
+ version_requirements: *13414660
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: faraday-stack
30
- requirement: &11365160 !ruby/object:Gem::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: *11365160
38
+ version_requirements: *13414160
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: hashie
41
- requirement: &11364700 !ruby/object:Gem::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: *11364700
49
+ version_requirements: *13413700
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: activesupport
52
- requirement: &11364240 !ruby/object:Gem::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: *11364240
60
+ version_requirements: *13413240
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: i18n
63
- requirement: &11363780 !ruby/object:Gem::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: *11363780
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: &11362860 !ruby/object:Gem::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: *11362860
82
+ version_requirements: *13412320
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: rspec
96
- requirement: &11362400 !ruby/object:Gem::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: *11362400
93
+ version_requirements: *13411860
105
94
  - !ruby/object:Gem::Dependency
106
95
  name: rspec-core
107
- requirement: &11361940 !ruby/object:Gem::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: *11361940
104
+ version_requirements: *13411400
116
105
  - !ruby/object:Gem::Dependency
117
106
  name: json_spec
118
- requirement: &11361480 !ruby/object:Gem::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: *11361480
115
+ version_requirements: *13410940
127
116
  - !ruby/object:Gem::Dependency
128
117
  name: shoulda
129
- requirement: &11361020 !ruby/object:Gem::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: *11361020
126
+ version_requirements: *13410480
138
127
  - !ruby/object:Gem::Dependency
139
128
  name: ruby-debug19
140
- requirement: &11360640 !ruby/object:Gem::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: *11360640
137
+ version_requirements: *13410100
149
138
  description:
150
139
  email:
151
140
  - david@isotope11.com