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 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