inkling_api 0.0.3 → 0.0.4

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.
@@ -1,3 +1,3 @@
1
1
  module InklingApi
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/lib/inkling_api.rb CHANGED
@@ -155,6 +155,39 @@ module InklingApi
155
155
  def publish_market(market_id)
156
156
  publish("markets/#{market_id}.xml", :content_type => 'application/xml')
157
157
  end
158
+
159
+ def memberships(*args)
160
+ get("memberships.xml", *args)
161
+ end
162
+
163
+ def membership(member_id, *args)
164
+ get("memberships/#{member_id}.xml", *args)
165
+ end
166
+
167
+ def create_membership(login, email, password, first_name, last_name)
168
+ membership_data = { :'login' => login,
169
+ :'password' => password,
170
+ :'email' => email,
171
+ :'first-name' => first_name,
172
+ :'last-name' => last_name
173
+ }
174
+ post("memberships.xml", membership_data.to_xml(:root => "membership"), :content_type => 'application/xml')
175
+ end
176
+
177
+ def update_membership(first_name, last_name, membership_id)
178
+ membership_data = { :'first-name' => first_name, :'last-name' => last_name }
179
+ put("memberships/#{membership_id}.xml", membership_data.to_xml(:root => "membership"), :content_type => 'application/xml')
180
+ end
181
+
182
+ def update_balance(balance_value, membership_id)
183
+ balance_data = { :'value' => balance_value }
184
+ put("memberships/#{membership_id}/balance.xml", balance_data.to_xml(:root => "balance"), :content_type => 'application/xml')
185
+ end
186
+
187
+ def delete_membership(membership_id)
188
+ delete("memberships/#{membership_id}.xml", :content_type => 'application/xml')
189
+ end
190
+
158
191
  end
159
192
 
160
193
  extend Configuration
@@ -8,8 +8,8 @@ describe InklingApi do
8
8
  let(:login) {InklingApiTestConfig.login}
9
9
  let(:password) {InklingApiTestConfig.password}
10
10
  let(:inkling_api) do
11
- InklingApi.url = url
12
- InklingApi.login = login
11
+ InklingApi.url = url
12
+ InklingApi.login = login
13
13
  InklingApi.password = password
14
14
  InklingApi
15
15
  end
@@ -46,9 +46,11 @@ describe InklingApi do
46
46
  it "should update a market" do
47
47
  market_id = 37810
48
48
  question = "Testing predicition widget"
49
- # FIXME: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
49
+ # NOTE: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
50
50
  # However, Inkling Markets returns nothing when updating existing markets
51
- # inkling_api.update_market(market_id, question).should be_a(String)
51
+ # lambda do
52
+ # inkling_api.update_market(market_id, question)
53
+ # end.should_not raise_error
52
54
  end
53
55
 
54
56
  it "should delete a market" do
@@ -64,4 +66,57 @@ describe InklingApi do
64
66
  inkling_api.publish_market(market_id)
65
67
  end.should_not raise_error
66
68
  end
69
+
70
+ it "should get a list of memberships" do
71
+ inkling_api.memberships.should be_a(Hash)
72
+ end
73
+
74
+ it "should get a membership" do
75
+ member_id = 211378
76
+ inkling_api.membership(member_id).should be_a(Hash)
77
+ end
78
+
79
+ it "should create a membership" do
80
+ login = "foo_bar#{Time.now.utc.to_i.to_s}"
81
+ email = "foo#{Time.now.utc.to_i.to_s}@bar.com"
82
+ first_name = "foo"
83
+ last_name = "bar"
84
+ password = "password"
85
+ inkling_api.create_membership(login, email, password, first_name, last_name)["membership"]["id"].should_not be_nil
86
+ end
87
+
88
+ it "should update a membership" do
89
+ membership_id = 210665
90
+ first_name = "Pamela"
91
+ last_name = "Fetterolf"
92
+ # NOTE: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
93
+ # However, Inkling Markets returns nothing when updating existing memberships
94
+ # lambda do
95
+ # inkling_api.update_membership(first_name, last_name, membership_id)
96
+ # end.should_not raise_error
97
+ end
98
+
99
+ it "should delete a membership" do
100
+ membership_id = 211794
101
+ # TODO: Email Inkling Markets about why this and
102
+ # curl \
103
+ # -u user:password \
104
+ # -H 'Content-Type: application/xml' \
105
+ # -X DELETE \
106
+ # http://subdomain.inklingmarkets.com/memberships/:membership_id.xml
107
+ # does not work...
108
+ lambda do
109
+ inkling_api.delete_membership(membership_id)
110
+ end.should_not raise_error
111
+ end
112
+
113
+ it "should update a member's balance" do
114
+ membership_id = 210665
115
+ balance_value = 293692
116
+ # NOTE: This will raise a <Faraday::Error::ParsingError> because it expects XML to be returned
117
+ # However, Inkling Markets returns nothing when updating the balance
118
+ # lambda do
119
+ # inkling_api.update_balance(balance_value, membership_id)
120
+ # end.should_not raise_error
121
+ end
67
122
  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.3
4
+ version: 0.0.4
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-15 00:00:00.000000000 +00:00
14
+ date: 2011-08-16 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: &21966720 !ruby/object:Gem::Requirement
19
+ requirement: &11365660 !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: *21966720
27
+ version_requirements: *11365660
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: faraday-stack
30
- requirement: &21966220 !ruby/object:Gem::Requirement
30
+ requirement: &11365160 !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: *21966220
38
+ version_requirements: *11365160
39
39
  - !ruby/object:Gem::Dependency
40
40
  name: hashie
41
- requirement: &21965760 !ruby/object:Gem::Requirement
41
+ requirement: &11364700 !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: *21965760
49
+ version_requirements: *11364700
50
50
  - !ruby/object:Gem::Dependency
51
51
  name: activesupport
52
- requirement: &21965300 !ruby/object:Gem::Requirement
52
+ requirement: &11364240 !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: *21965300
60
+ version_requirements: *11364240
61
61
  - !ruby/object:Gem::Dependency
62
62
  name: i18n
63
- requirement: &21964840 !ruby/object:Gem::Requirement
63
+ requirement: &11363780 !ruby/object:Gem::Requirement
64
64
  none: false
65
65
  requirements:
66
66
  - - ~>
@@ -68,10 +68,10 @@ dependencies:
68
68
  version: 0.6.0
69
69
  type: :runtime
70
70
  prerelease: false
71
- version_requirements: *21964840
71
+ version_requirements: *11363780
72
72
  - !ruby/object:Gem::Dependency
73
73
  name: httparty
74
- requirement: &21964380 !ruby/object:Gem::Requirement
74
+ requirement: &11363320 !ruby/object:Gem::Requirement
75
75
  none: false
76
76
  requirements:
77
77
  - - ~>
@@ -79,10 +79,10 @@ dependencies:
79
79
  version: 0.7.8
80
80
  type: :runtime
81
81
  prerelease: false
82
- version_requirements: *21964380
82
+ version_requirements: *11363320
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: builder
85
- requirement: &21963920 !ruby/object:Gem::Requirement
85
+ requirement: &11362860 !ruby/object:Gem::Requirement
86
86
  none: false
87
87
  requirements:
88
88
  - - ~>
@@ -90,10 +90,10 @@ dependencies:
90
90
  version: 3.0.0
91
91
  type: :runtime
92
92
  prerelease: false
93
- version_requirements: *21963920
93
+ version_requirements: *11362860
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: rspec
96
- requirement: &21963460 !ruby/object:Gem::Requirement
96
+ requirement: &11362400 !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ~>
@@ -101,10 +101,10 @@ dependencies:
101
101
  version: 2.6.0
102
102
  type: :development
103
103
  prerelease: false
104
- version_requirements: *21963460
104
+ version_requirements: *11362400
105
105
  - !ruby/object:Gem::Dependency
106
106
  name: rspec-core
107
- requirement: &21963000 !ruby/object:Gem::Requirement
107
+ requirement: &11361940 !ruby/object:Gem::Requirement
108
108
  none: false
109
109
  requirements:
110
110
  - - ~>
@@ -112,10 +112,10 @@ dependencies:
112
112
  version: 2.6.0
113
113
  type: :development
114
114
  prerelease: false
115
- version_requirements: *21963000
115
+ version_requirements: *11361940
116
116
  - !ruby/object:Gem::Dependency
117
117
  name: json_spec
118
- requirement: &21962540 !ruby/object:Gem::Requirement
118
+ requirement: &11361480 !ruby/object:Gem::Requirement
119
119
  none: false
120
120
  requirements:
121
121
  - - ~>
@@ -123,10 +123,10 @@ dependencies:
123
123
  version: 0.6.0
124
124
  type: :development
125
125
  prerelease: false
126
- version_requirements: *21962540
126
+ version_requirements: *11361480
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: shoulda
129
- requirement: &21962080 !ruby/object:Gem::Requirement
129
+ requirement: &11361020 !ruby/object:Gem::Requirement
130
130
  none: false
131
131
  requirements:
132
132
  - - ~>
@@ -134,10 +134,10 @@ dependencies:
134
134
  version: 2.11.3
135
135
  type: :development
136
136
  prerelease: false
137
- version_requirements: *21962080
137
+ version_requirements: *11361020
138
138
  - !ruby/object:Gem::Dependency
139
139
  name: ruby-debug19
140
- requirement: &21961700 !ruby/object:Gem::Requirement
140
+ requirement: &11360640 !ruby/object:Gem::Requirement
141
141
  none: false
142
142
  requirements:
143
143
  - - ! '>='
@@ -145,7 +145,7 @@ dependencies:
145
145
  version: '0'
146
146
  type: :development
147
147
  prerelease: false
148
- version_requirements: *21961700
148
+ version_requirements: *11360640
149
149
  description:
150
150
  email:
151
151
  - david@isotope11.com