sixpack-client 0.4.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ ZTJlYzVkNmZlMDI0ZjNiMmIwMTA5NmQ1OTY0ZThhN2ZlOTg2ZmI5Nw==
5
+ data.tar.gz: !binary |-
6
+ YmFmMDIxOTU2ZWE3ZDBlYmE0OWRmOWM5NTA5OTE3YzczZTVmMzc0Mg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YmM0ZDdhYWY5NTAwZTA3ZmM4MGU4Y2ZmZDg3MzMwYWQ0M2JhOWEwNzkyMWEz
10
+ OTYzZDFhNTZlMGM4MWUyZDg4ZmZhZWVmYTczYmE3ZmQ0NzNmODJlM2MxN2E4
11
+ MzA5NzlmOGU3YWRlODY2Y2I4Njc0NjYwOTBlMmI4M2U2M2Y5M2M=
12
+ data.tar.gz: !binary |-
13
+ NTJhMGE1YjNhYmY1YzFhZWJjNjA3MjMxMDAyZGNiZDU4ZjY1YjlkODE0NmI1
14
+ NjVmZTIzMDc4ZDAyYzdlYjNlZWYyOWJmMjJiMjY4NzlmODM5ZDMxZWY0MTZj
15
+ ZTUzOTM4YWE4YWYzZDA3YjExYzBjOGQ2NGM0M2U4MDRmODM5MzI=
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
data/README.md CHANGED
@@ -48,18 +48,19 @@ session = Sixpack::Session.new client_id
48
48
  session.convert("new-test")
49
49
  ```
50
50
 
51
- If you already have a client_id (you can generate one using `Sixpack.generate_client_id()`) you can use the `simple_participate()` and `simple_convert()` methods to avoid instantiating a `Session`:
51
+ Sessions can take an optional `options` dictionary that takes `host` and `timeout` as keys. This allows you to customize Sixpack's location.
52
52
 
53
- ```ruby
54
- Sixpack::simple_partipate("new-test", ["alternative-1", "alternative-2"], client_id)
53
+ options = {'host': 'http://mysixpacklocation.com'}
54
+ session = Session(client_id="123", options=options)
55
+
56
+ If Sixpack is unreachable or other errors occur, sixpack-py will provide the control alternative.
55
57
 
56
- Sixpack::simple_convert("new-test", client_id)
57
- ```
58
58
 
59
59
  ## Contributing
60
60
 
61
61
  1. Fork it
62
62
  2. Create your feature branch (`git checkout -b my-new-feature`)
63
- 3. Commit your changes (`git commit -am 'Added some feature'`)
64
- 4. Push to the branch (`git push origin my-new-feature`)
65
- 5. Create new Pull Request
63
+ 3. Write and run some tests with `$ rake`
64
+ 4. Commit your changes (`git commit -am 'Added some feature'`)
65
+ 5. Push to the branch (`git push origin my-new-feature`)
66
+ 6. Create new Pull Request
@@ -1,3 +1,3 @@
1
1
  module Sixpack
2
- VERSION = "0.4.0"
2
+ VERSION = "1.0.0"
3
3
  end
data/lib/sixpack.rb CHANGED
@@ -13,17 +13,6 @@ module Sixpack
13
13
 
14
14
  @base_url = "http://localhost:5000"
15
15
 
16
- def simple_participate(experiment_name, alternatives, client_id=nil, force=nil)
17
- session = Session.new(client_id)
18
- res = session.participate(experiment_name, alternatives, force)
19
- res["alternative"]["name"]
20
- end
21
-
22
- def simple_convert(experiment_name, client_id)
23
- session = Session.new(client_id)
24
- session.convert(experiment_name)["status"]
25
- end
26
-
27
16
  def generate_client_id
28
17
  uuid = UUID.new
29
18
  uuid.generate
data/sixpack.gemspec CHANGED
@@ -18,8 +18,8 @@ Gem::Specification.new do |gem|
18
18
  gem.add_development_dependency 'rake'
19
19
  gem.add_development_dependency 'rspec'
20
20
  gem.add_development_dependency 'redis'
21
- gem.add_development_dependency 'json'
22
21
 
22
+ gem.add_runtime_dependency 'json'
23
23
  gem.add_runtime_dependency 'uuid'
24
24
  gem.add_runtime_dependency 'addressable'
25
25
  end
@@ -10,16 +10,18 @@ describe Sixpack do
10
10
  end
11
11
  end
12
12
 
13
- it "should return an alternative for simple_participate" do
14
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike")
15
- ['trolled', 'not-trolled'].should include(alternative)
13
+ it "should return an alternative for participate" do
14
+ sess = Sixpack::Session.new("mike")
15
+ resp = sess.participate('show-bieber', ['trolled', 'not-trolled'])
16
+ ['trolled', 'not-trolled'].should include(resp["alternative"]["name"])
16
17
  end
17
18
 
18
- it "should return the correct alternative for simple_participate with force" do
19
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike", "trolled")
20
- alternative.should == "trolled"
19
+ it "should return the correct alternative for participate with force" do
20
+ sess = Sixpack::Session.new("mike")
21
+ alt = sess.participate('show-bieber', ['trolled', 'not-trolled'], "trolled")["alternative"]["name"]
22
+ alt.should == "trolled"
21
23
 
22
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike", "not-trolled")
24
+ alternative = sess.participate('show-bieber', ['trolled', 'not-trolled'], "not-trolled")["alternative"]["name"]
23
25
  alternative.should == "not-trolled"
24
26
  end
25
27
 
@@ -28,51 +30,56 @@ describe Sixpack do
28
30
  session = Sixpack::Session.new('client_id', {}, params)
29
31
  session.ip_address.should == '8.8.8.8'
30
32
  session.user_agent.should == 'FirChromari'
31
-
32
33
  end
33
34
 
34
35
  it "should auto generate a client_id" do
35
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], nil)
36
- ['trolled', 'not-trolled'].should include(alternative)
36
+ sess = Sixpack::Session.new
37
+ sess.client_id.length.should == 36
37
38
  end
38
39
 
39
- it "should return ok for simple_convert" do
40
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike")
41
- Sixpack.simple_convert("show-bieber", "mike").should == "ok"
40
+ it "should return ok for convert" do
41
+ sess = Sixpack::Session.new("mike")
42
+ alternative = sess.participate('show-bieber', ['trolled', 'not-trolled'])
43
+ sess.convert("show-bieber")["status"].should == "ok"
42
44
  end
43
45
 
44
46
  it "should return ok for multiple_converts" do
45
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike")
46
- Sixpack.simple_convert("show-bieber", "mike").should == "ok"
47
- Sixpack.simple_convert("show-bieber", "mike").should == "ok"
47
+ sess = Sixpack::Session.new("mike")
48
+ sess.participate('show-bieber', ['trolled', 'not-trolled'])
49
+ sess.convert("show-bieber")["status"].should == "ok"
50
+ sess.convert("show-bieber")["status"].should == "ok"
48
51
  end
49
52
 
50
- it "should not return ok for simple_convert with new id" do
51
- Sixpack.simple_convert("show-bieber", "unknown_id").should == "failed"
53
+ it "should not return ok for convert with new id" do
54
+ sess = Sixpack::Session.new("unknown_id")
55
+ sess.convert("show-bieber")["status"].should == "failed"
52
56
  end
53
57
 
54
- it "should not return ok for simple_convert with new experiment" do
55
- alternative = Sixpack.simple_participate('show-bieber', ['trolled', 'not-trolled'], "mike")
56
- Sixpack.simple_convert("show-blieber", "mike").should == "failed"
58
+ it "should not return ok for convert with new experiment" do
59
+ sess = Sixpack::Session.new
60
+ sess.convert("show-blieber")['status'].should == "failed"
57
61
  end
58
62
 
59
63
  it "should not allow bad experiment names" do
60
64
  expect {
61
- Sixpack.simple_participate('%%', ['trolled', 'not-trolled'], nil)
65
+ sess = Sixpack::Session.new
66
+ sess.participate('%%', ['trolled', 'not-trolled'], nil)
62
67
  }.to raise_error
63
68
  end
64
69
 
65
70
  it "should not allow bad alternatives names" do
66
71
  expect {
67
- Sixpack.simple_participate('show-bieber', ['trolled'], nil)
72
+ sess = Sixpack::Session.new
73
+ sess.participate('show-bieber', ['trolled'], nil)
68
74
  }.to raise_error
69
75
 
70
76
  expect {
71
- Sixpack.simple_participate('show-bieber', ['trolled', '%%'], nil)
77
+ sess = Sixpack::Session.new
78
+ sess.participate('show-bieber', ['trolled', '%%'], nil)
72
79
  }.to raise_error
73
80
  end
74
81
 
75
- it "should work without using the simple methods" do
82
+ it "should work" do
76
83
  session = Sixpack::Session.new
77
84
  session.convert("testing")["status"].should == "failed"
78
85
  alt_one = session.participate("testing", ["one", "two"])["alternative"]
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sixpack-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - SeatGeek
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-08-13 00:00:00.000000000 Z
11
+ date: 2013-08-19 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rake
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: redis
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,15 +55,13 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: json
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
- type: :development
62
+ type: :runtime
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ! '>='
76
67
  - !ruby/object:Gem::Version
@@ -78,7 +69,6 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: uuid
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
73
  - - ! '>='
84
74
  - !ruby/object:Gem::Version
@@ -86,7 +76,6 @@ dependencies:
86
76
  type: :runtime
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
80
  - - ! '>='
92
81
  - !ruby/object:Gem::Version
@@ -94,7 +83,6 @@ dependencies:
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: addressable
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
87
  - - ! '>='
100
88
  - !ruby/object:Gem::Version
@@ -102,7 +90,6 @@ dependencies:
102
90
  type: :runtime
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
94
  - - ! '>='
108
95
  - !ruby/object:Gem::Version
@@ -115,6 +102,7 @@ extensions: []
115
102
  extra_rdoc_files: []
116
103
  files:
117
104
  - .gitignore
105
+ - .travis.yml
118
106
  - Gemfile
119
107
  - LICENSE
120
108
  - README.md
@@ -126,27 +114,26 @@ files:
126
114
  - spec/spec_helper.rb
127
115
  homepage: http://www.seatgeek.com
128
116
  licenses: []
117
+ metadata: {}
129
118
  post_install_message:
130
119
  rdoc_options: []
131
120
  require_paths:
132
121
  - lib
133
122
  required_ruby_version: !ruby/object:Gem::Requirement
134
- none: false
135
123
  requirements:
136
124
  - - ! '>='
137
125
  - !ruby/object:Gem::Version
138
126
  version: '0'
139
127
  required_rubygems_version: !ruby/object:Gem::Requirement
140
- none: false
141
128
  requirements:
142
129
  - - ! '>='
143
130
  - !ruby/object:Gem::Version
144
131
  version: '0'
145
132
  requirements: []
146
133
  rubyforge_project:
147
- rubygems_version: 1.8.23
134
+ rubygems_version: 2.0.7
148
135
  signing_key:
149
- specification_version: 3
136
+ specification_version: 4
150
137
  summary: Ruby library for interacting with SeatGeek's sixpack.
151
138
  test_files:
152
139
  - spec/lib/sixpack_spec.rb