pasrb 0.0.1 → 0.0.2
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/CHANGELOG +4 -1
- data/README +17 -6
- data/Rakefile +1 -1
- data/lib/pas.rb +16 -1
- data/pasrb.gemspec +2 -2
- data/spec/pas_spec.rb +76 -0
- metadata +4 -4
data/CHANGELOG
CHANGED
data/README
CHANGED
@@ -1,25 +1,36 @@
|
|
1
1
|
PAS.rb -- the ruby window to PAS API
|
2
|
-
|
2
|
+
====================================
|
3
3
|
|
4
4
|
This gem is a client library for querying PAS API.
|
5
5
|
API docs can be found here: http://www.pokeraffiliatesolutions.com/docs/
|
6
6
|
|
7
7
|
Installation
|
8
|
-
|
8
|
+
============
|
9
9
|
|
10
10
|
* `gem install pasrb`
|
11
|
-
* `require
|
11
|
+
* `require pas`
|
12
12
|
*
|
13
13
|
pas_api = PAS.new('YOUR_API_ACCESS_KEY', 'YOUR_API_ACCESS_TOKEN')
|
14
14
|
pas_api.list_all_members # { "SAMPLEUSER" => {:id => 28746, :login => "SAMPLEUSER", ...}, "WTFOMG" => {:id => 28123, :login => "WTFOMG", ...} }
|
15
15
|
|
16
|
+
|
17
|
+
Problems
|
18
|
+
========
|
19
|
+
|
20
|
+
Most methods are safeguarded with rescues. If you have problems struggling with them, or you need explicit error messages, let me know, I'll set up some
|
21
|
+
anti-safeguards.
|
22
|
+
|
16
23
|
|
17
24
|
Important notes
|
18
|
-
|
25
|
+
===============
|
26
|
+
|
27
|
+
That is some minimal subset of PAS API functions (I, for one, don't need most of them),
|
28
|
+
if you'd like to modify / add functionality, feel free to fork + pull request.
|
29
|
+
|
30
|
+
That is a working draft, although I could make use of it, hope it's helpful for ya.
|
19
31
|
|
20
|
-
That is some minimal subset of PAS API functions (I, for one, don't need most of them), if you'd like to modify / add functionality, feel free to fork + pull request.
|
21
32
|
|
22
33
|
License & Authorship
|
23
|
-
|
34
|
+
====================
|
24
35
|
|
25
36
|
PASrb is written by Mark Markiz Abramov and distributed under terms of MIT license.
|
data/Rakefile
CHANGED
data/lib/pas.rb
CHANGED
@@ -90,6 +90,8 @@ class PAS
|
|
90
90
|
[]
|
91
91
|
end
|
92
92
|
|
93
|
+
# Gather stats for specific member for specific period of time
|
94
|
+
# Warning: probably not page aware: didn't check that one
|
93
95
|
def get_member_trackers_stats(member_id, start_date, end_date)
|
94
96
|
@member_tracker_stats ||= {}
|
95
97
|
@member_tracker_stats[member_id] ||= {}
|
@@ -118,7 +120,7 @@ class PAS
|
|
118
120
|
rescue
|
119
121
|
nil
|
120
122
|
end
|
121
|
-
|
123
|
+
|
122
124
|
def get_member_tracker_stats(member_id, tracker_id, start_date, end_date)
|
123
125
|
trackers = get_member_trackers_stats(member_id, start_date, end_date)
|
124
126
|
trackers ? trackers[tracker_id] : nil
|
@@ -126,6 +128,8 @@ class PAS
|
|
126
128
|
nil
|
127
129
|
end
|
128
130
|
|
131
|
+
|
132
|
+
# Creates a member for given website offer
|
129
133
|
def create_member_tracker(member_id, identifier, website_offer_id)
|
130
134
|
new_member_tracker = {"member_tracker" => {"identifier" => identifier, "website_offer_id" => website_offer_id}}
|
131
135
|
response = make_request("/publisher_members/#{member_id}/publisher_member_trackers.xml", "POST", hash_to_xml(new_member_tracker))
|
@@ -140,6 +144,17 @@ class PAS
|
|
140
144
|
rescue
|
141
145
|
nil
|
142
146
|
end
|
147
|
+
|
148
|
+
# Returns array of website offers for given website id
|
149
|
+
def website_offers(website_id)
|
150
|
+
response = make_request("/website_offers.xml", "GET", {:website_id => website_id})
|
151
|
+
response = [xml_to_hash(response)["offers"]["offer"]].flatten
|
152
|
+
symbolize_keys(response).map {|o| o[:id] = o[:id].to_i; o }
|
153
|
+
rescue
|
154
|
+
[]
|
155
|
+
end
|
156
|
+
alias_method :get_website_offers, :website_offers
|
157
|
+
|
143
158
|
#protected
|
144
159
|
def xml_to_hash(xml)
|
145
160
|
XmlSimple.xml_in(xml,
|
data/pasrb.gemspec
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{pasrb}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Markiz"]
|
@@ -10,7 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.description = %q{PokerAffiliateSupport api querying via ruby}
|
11
11
|
s.email = %q{markizko@gmail.com}
|
12
12
|
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "lib/pas.rb"]
|
13
|
-
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "autotest/discover.rb", "lib/pas.rb", "spec/pas_spec.rb", "spec/spec_helper.rb"
|
13
|
+
s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "autotest/discover.rb", "lib/pas.rb", "pasrb.gemspec", "spec/pas_spec.rb", "spec/spec_helper.rb"]
|
14
14
|
s.homepage = %q{http://github.com/markiz/pasrb}
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Pasrb", "--main", "README"]
|
16
16
|
s.require_paths = ["lib"]
|
data/spec/pas_spec.rb
CHANGED
@@ -377,4 +377,80 @@ describe PAS do
|
|
377
377
|
subject.create_member_tracker(member_id, identifier, website_offer_id).should == nil
|
378
378
|
end
|
379
379
|
end
|
380
|
+
|
381
|
+
describe "#website_offers" do
|
382
|
+
before(:each) {
|
383
|
+
stub_request('xml version="1.0" encoding="UTF-8"?>
|
384
|
+
<offers>
|
385
|
+
<offer>
|
386
|
+
<id>4881</id>
|
387
|
+
<poker_room_id>6</poker_room_id>
|
388
|
+
<poker_room_xml_url>https://publisher.pokeraffiliatesolutions.com/feeds/poker_rooms/absolute-poker.xml</poker_room_xml_url>
|
389
|
+
<slug>absolute-poker</slug>
|
390
|
+
<image_url>http://publisher.pokeraffiliatesolutions.com/images/offers/lg_6.gif</image_url>
|
391
|
+
<icon_url>http://publisher.pokeraffiliatesolutions.com/images/icons/icon_6.gif</icon_url>
|
392
|
+
<tny_image_url>http://publisher.pokeraffiliatesolutions.com/images/offers/tny_6.gif</tny_image_url>
|
393
|
+
<name>Absolute Poker</name>
|
394
|
+
<network>Cereus</network>
|
395
|
+
<direct_url>http://publisher.pokeraffiliatesolutions.com/outgoing/4881</direct_url>
|
396
|
+
<link>http://www.raketracker.ru/rakeback/absolute-poker.html</link>
|
397
|
+
<rb_player>30%</rb_player>
|
398
|
+
<stats>Daily</stats>
|
399
|
+
<sitebonus>150% up to $500</sitebonus>
|
400
|
+
<raketype>contributed</raketype>
|
401
|
+
<offer_type>Rakeback</offer_type>
|
402
|
+
<signup_code>RAKETRACK</signup_code>
|
403
|
+
<account_identifier>Screen Name</account_identifier>
|
404
|
+
<show_cookies_message>true</show_cookies_message>
|
405
|
+
<requires_preloaded_tracker>false</requires_preloaded_tracker>
|
406
|
+
<promotions>
|
407
|
+
<promotion>
|
408
|
+
<name>Cereus Rake Race</name>
|
409
|
+
<feed_url>https://publisher.pokeraffiliatesolutions.com/feeds/promotions/CEREUS.xml?type=rake_race</feed_url>
|
410
|
+
</promotion>
|
411
|
+
</promotions>
|
412
|
+
</offer>
|
413
|
+
<offer>
|
414
|
+
<id>34835</id>
|
415
|
+
<poker_room_id>85</poker_room_id>
|
416
|
+
<poker_room_xml_url>https://publisher.pokeraffiliatesolutions.com/feeds/poker_rooms/minted-poker.xml</poker_room_xml_url>
|
417
|
+
<slug>minted-poker</slug>
|
418
|
+
<image_url>http://publisher.pokeraffiliatesolutions.com/images/offers/lg_85.gif</image_url>
|
419
|
+
<icon_url>http://publisher.pokeraffiliatesolutions.com/images/icons/icon_85.gif</icon_url>
|
420
|
+
<tny_image_url>http://publisher.pokeraffiliatesolutions.com/images/offers/tny_85.gif</tny_image_url>
|
421
|
+
<name>Minted Poker</name>
|
422
|
+
<network>Everleaf Gaming</network>
|
423
|
+
<direct_url>http://publisher.pokeraffiliatesolutions.com/outgoing/34835</direct_url>
|
424
|
+
<link>http://www.raketracker.ru/rakeback/minted-poker.html</link>
|
425
|
+
<rb_player>40%</rb_player>
|
426
|
+
<stats>Monthly</stats>
|
427
|
+
<sitebonus>100% up to $400</sitebonus>
|
428
|
+
<raketype>contributed</raketype>
|
429
|
+
<offer_type>Rakeback</offer_type>
|
430
|
+
<signup_code>TrackRB</signup_code>
|
431
|
+
<account_identifier>Nickname</account_identifier>
|
432
|
+
<show_cookies_message>true</show_cookies_message>
|
433
|
+
<requires_preloaded_tracker>false</requires_preloaded_tracker>
|
434
|
+
<promotions>
|
435
|
+
<promotion>
|
436
|
+
<name>Minted Rake Chase</name>
|
437
|
+
<feed_url>https://publisher.pokeraffiliatesolutions.com/feeds/promotions/minted.xml?type=rake_chase</feed_url>
|
438
|
+
</promotion>
|
439
|
+
</promotions>
|
440
|
+
</offer>
|
441
|
+
</offers>')
|
442
|
+
}
|
443
|
+
|
444
|
+
it "should gather website offers from api" do
|
445
|
+
website_offers = subject.website_offers(12345)
|
446
|
+
website_offers[1][:id].should == 34835
|
447
|
+
website_offers[1][:slug].should == "minted-poker"
|
448
|
+
end
|
449
|
+
|
450
|
+
it "should return empty array on failure" do
|
451
|
+
stub_request("<invalid></xml>")
|
452
|
+
subject.website_offers(12345).should == []
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
380
456
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pasrb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Markiz
|
@@ -65,9 +65,9 @@ files:
|
|
65
65
|
- Rakefile
|
66
66
|
- autotest/discover.rb
|
67
67
|
- lib/pas.rb
|
68
|
+
- pasrb.gemspec
|
68
69
|
- spec/pas_spec.rb
|
69
70
|
- spec/spec_helper.rb
|
70
|
-
- pasrb.gemspec
|
71
71
|
has_rdoc: true
|
72
72
|
homepage: http://github.com/markiz/pasrb
|
73
73
|
licenses: []
|