talkable 1.0.4 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: e3fbd60d272672f462b414e27367089db71bb4a9aaad907cfcaa8f54051c22ad
4
- data.tar.gz: a4883171c255a0b69fd381378c5a4b83cee47904f971dbacd53c4caf73bc8e97
2
+ SHA1:
3
+ metadata.gz: 1754ae010f0566c962842807ebbe0ee6350d7b90
4
+ data.tar.gz: 3b0215fd0557a03d971cf52e7ee5ff8a6068d66e
5
5
  SHA512:
6
- metadata.gz: 6d47cdd3cfd41cc753be0b37300e227ca59b7a9b8c8a4819f4eef7868abaced41f02e90b82a196336c4d3f824cf61992bedcd84c2e6f9f913baea2b6e4f4f837
7
- data.tar.gz: cde0da734dd43e88f74d75dcd25b98a4e5fc20f58a15d8b07c3d3984e8c504725526309470024d0174e597ad5dd9e268540702a11418798906d7a6d4fd29eec9
6
+ metadata.gz: 739ae868b57afea5eb8b5e3838b96fbc5095a8e10a35f3621943a6ff33c788dc20a9ab2661f395b52b7407e1f736ade0981163ed14683150001c329332f4cc89
7
+ data.tar.gz: 9ea750b62d1c02dacd95bdf4b05b9fb079829e373940e69afa272c467530a6721f90abd05d77d19f9e6f812b97177536f5aa96b4f313e153c21cc2fddd70e0ef
@@ -0,0 +1,52 @@
1
+ version: 2
2
+
3
+ jobs:
4
+ ruby-2.6: &template
5
+ docker:
6
+ - image: circleci/ruby:2.6
7
+ environment:
8
+ BUNDLER_VERSION: 2.0.1
9
+ working_directory: ~/talkable-ruby
10
+ steps:
11
+ - checkout
12
+
13
+ - run:
14
+ name: Configure Bundler
15
+ command: gem install bundler
16
+
17
+ - run:
18
+ name: Display Versions
19
+ command: |
20
+ function extract_version() { perl -pe 'if(($v)=/([0-9]+([.][0-9]+)+)/){print"$v\n";exit}$_=""' ; }
21
+ echo Ruby $(ruby --version | extract_version)
22
+ echo RubyGems $(gem --version | extract_version)
23
+ echo Bundler $(bundle --version | extract_version)
24
+
25
+ - run:
26
+ name: Bundle Install
27
+ command: bundle install
28
+
29
+ - run:
30
+ name: RSpec
31
+ command: bundle exec rspec
32
+ ruby-2.5:
33
+ <<: *template
34
+ docker:
35
+ - image: circleci/ruby:2.5
36
+ ruby-2.4:
37
+ <<: *template
38
+ docker:
39
+ - image: circleci/ruby:2.4
40
+ ruby-2.3:
41
+ <<: *template
42
+ docker:
43
+ - image: circleci/ruby:2.3
44
+
45
+ workflows:
46
+ version: 2
47
+ workflow:
48
+ jobs:
49
+ - ruby-2.6
50
+ - ruby-2.5
51
+ - ruby-2.4
52
+ - ruby-2.3
data/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  # Talkable Referral Marketing API Gem
2
- [![](https://ci.solanolabs.com:443/Talkable/talkable-ruby/badges/branches/master?badge_token=c2445aee31992aafe3d8fda62fcde2708f6254f6)](https://ci.solanolabs.com:443/Talkable/talkable-ruby/suites/484176)
3
2
 
4
- Referral marketing is one of the most powerful strategies for ecommerce sales growth. [Talkable]( https://www.talkable.com) provides a rich platform for referral marketing. You can integrate sophisticated referral marketing into your own ecommerce site using the Talkable Ruby gem for a Rails or Sinatra application.
3
+ [![Build Status](https://circleci.com/gh/talkable/talkable-ruby.svg?style=svg&circle-token=88c3962ec8e07a03bd366c68caa3fe6133f9c824)](https://circleci.com/gh/talkable/talkable-ruby)
5
4
 
6
- Here you can create Talkable account https://admin.talkable.com/register?self_serve
5
+ Referral marketing is one of the most powerful strategies for ecommerce sales growth. [Talkable](https://www.talkable.com) provides a rich platform for referral marketing. You can integrate sophisticated referral marketing into your own ecommerce site using the Talkable Ruby gem for a Rails or Sinatra application.
7
6
 
8
7
  ## Demo
9
8
 
@@ -20,6 +20,10 @@ module Talkable
20
20
  @configuration ||= Talkable::Configuration.new
21
21
  end
22
22
 
23
+ def reset_configuration
24
+ configuration.reset
25
+ end
26
+
23
27
  def visitor_uuid
24
28
  Thread.current[UUID]
25
29
  end
@@ -48,7 +52,5 @@ module Talkable
48
52
  Talkable.current_url = old_url
49
53
  Talkable.visitor_uuid = old_uuid
50
54
  end
51
-
52
55
  end
53
-
54
56
  end
@@ -32,7 +32,6 @@ module Talkable
32
32
 
33
33
  def request_params(params = {})
34
34
  params.merge({
35
- api_key: Talkable.configuration.api_key,
36
35
  site_slug: Talkable.configuration.site_slug,
37
36
  })
38
37
  end
@@ -50,11 +49,14 @@ module Talkable
50
49
  'User-Agent' => "Talkable Gem/#{Talkable::VERSION}",
51
50
  'Content-Type' => 'application/json',
52
51
  'Accept' => 'application/json',
52
+ 'Authorization' => "Bearer #{Talkable.configuration.api_key}",
53
53
  }
54
54
  end
55
55
 
56
56
  def perform_request(uri, request)
57
57
  http = Net::HTTP.new(uri.host, uri.port)
58
+ http.read_timeout = Talkable.configuration.read_timeout
59
+ http.open_timeout = Talkable.configuration.open_timeout
58
60
  http.use_ssl = uri.is_a?(URI::HTTPS)
59
61
 
60
62
  request.initialize_http_header request_headers
@@ -0,0 +1,11 @@
1
+ module Talkable
2
+ module API
3
+ class Campaign < Base
4
+ class << self
5
+ def all
6
+ get "/campaigns"
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,15 @@
1
+ module Talkable
2
+ module API
3
+ class Coupon < Base
4
+ class << self
5
+ def find(code)
6
+ get "/coupons/#{code}"
7
+ end
8
+
9
+ def permission(code, email_or_username)
10
+ get "/coupons/#{code}/permission/#{email_or_username}"
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,11 @@
1
+ module Talkable
2
+ module API
3
+ class Metric < Base
4
+ class << self
5
+ def find(name, params = {})
6
+ get "/metrics/#{name}", params
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end
@@ -11,6 +11,18 @@ module Talkable
11
11
  data: params
12
12
  }
13
13
  end
14
+
15
+ def unsubscribe(email_or_username)
16
+ post "/people/#{email_or_username}/unsubscribe"
17
+ end
18
+
19
+ def anonymize(email_or_username)
20
+ post "/people/#{email_or_username}/anonymize"
21
+ end
22
+
23
+ def personal_data(email_or_username)
24
+ get "/people/#{email_or_username}/personal_data"
25
+ end
14
26
  end
15
27
  end
16
28
  end
@@ -1,19 +1,20 @@
1
1
  module Talkable
2
2
  class Configuration
3
- DEFAULT_SERVER = "https://www.talkable.com".freeze
3
+ DEFAULT_SERVER = 'https://www.talkable.com'.freeze
4
+ DEFAULT_TIMEOUT = 5
4
5
 
5
6
  attr_accessor :site_slug
6
7
  attr_accessor :api_key
7
8
  attr_accessor :server
9
+ attr_accessor :read_timeout
10
+ attr_accessor :open_timeout
8
11
  attr_accessor :js_integration_library
9
12
 
10
13
  class UnknownOptionError < StandardError
11
14
  end
12
15
 
13
16
  def initialize
14
- self.site_slug = ENV["TALKABLE_SITE_SLUG"]
15
- self.api_key = ENV["TALKABLE_API_KEY"]
16
- self.server = DEFAULT_SERVER
17
+ apply(default_configuration)
17
18
  end
18
19
 
19
20
  def apply(config)
@@ -30,10 +31,29 @@ module Talkable
30
31
  @js_integration_library || default_js_integration_library
31
32
  end
32
33
 
33
- protected
34
+ def reset
35
+ apply(default_configuration)
36
+ end
37
+
38
+ def timeout=(sec)
39
+ apply(read_timeout: sec, open_timeout: sec)
40
+ end
41
+
42
+ private
34
43
 
35
44
  def default_js_integration_library
36
45
  "//d2jjzw81hqbuqv.cloudfront.net/integration/clients/#{site_slug}.min.js"
37
46
  end
47
+
48
+ def default_configuration
49
+ {
50
+ site_slug: ENV["TALKABLE_SITE_SLUG"],
51
+ api_key: ENV["TALKABLE_API_KEY"],
52
+ server: DEFAULT_SERVER,
53
+ read_timeout: DEFAULT_TIMEOUT,
54
+ open_timeout: DEFAULT_TIMEOUT,
55
+ js_integration_library: nil
56
+ }
57
+ end
38
58
  end
39
59
  end
@@ -1,3 +1,3 @@
1
1
  module Talkable
2
- VERSION = "1.0.4"
2
+ VERSION = "1.0.5"
3
3
  end
@@ -20,7 +20,7 @@ Gem::Specification.new do |s|
20
20
  s.add_dependency "furi", "~> 0.2"
21
21
  s.add_dependency "hashie", "~> 3.4"
22
22
 
23
- s.add_development_dependency "bundler", "~> 1.12"
23
+ s.add_development_dependency "bundler", "~> 2.0.1"
24
24
  s.add_development_dependency "rake", "~> 11.2"
25
25
  s.add_development_dependency "rspec", "~> 3.4"
26
26
  s.add_development_dependency "simplecov", "~> 0.12"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: talkable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Talkable
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-10 00:00:00.000000000 Z
11
+ date: 2019-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.12'
61
+ version: 2.0.1
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '1.12'
68
+ version: 2.0.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -157,6 +157,7 @@ executables: []
157
157
  extensions: []
158
158
  extra_rdoc_files: []
159
159
  files:
160
+ - ".circleci/config.yml"
160
161
  - ".gitignore"
161
162
  - ".rspec"
162
163
  - Gemfile
@@ -167,6 +168,9 @@ files:
167
168
  - lib/talkable.rb
168
169
  - lib/talkable/api.rb
169
170
  - lib/talkable/api/base.rb
171
+ - lib/talkable/api/campaign.rb
172
+ - lib/talkable/api/coupon.rb
173
+ - lib/talkable/api/metric.rb
170
174
  - lib/talkable/api/offer.rb
171
175
  - lib/talkable/api/origin.rb
172
176
  - lib/talkable/api/person.rb
@@ -202,7 +206,6 @@ files:
202
206
  - lib/talkable/resources/offer.rb
203
207
  - lib/talkable/resources/origin.rb
204
208
  - lib/talkable/version.rb
205
- - solano.yml
206
209
  - talkable.gemspec
207
210
  - tutorial_images/logo.png
208
211
  - tutorial_images/navbar.png
@@ -259,7 +262,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
259
262
  version: '0'
260
263
  requirements: []
261
264
  rubyforge_project:
262
- rubygems_version: 2.7.6
265
+ rubygems_version: 2.6.14
263
266
  signing_key:
264
267
  specification_version: 4
265
268
  summary: Talkable Referral Program API
data/solano.yml DELETED
@@ -1,18 +0,0 @@
1
- ---
2
- timeout: 900
3
- timeout_hook: 900
4
- bundler_version: 1.16.1
5
- ruby_version:
6
- SPLIT:
7
- - "2.3.0"
8
- - "2.4.0"
9
- - "2.5.0"
10
- test_pattern:
11
- - spec/**_spec.rb
12
- hooks:
13
- pre_setup: bundle install
14
- cache:
15
- nocache: true
16
- coverage:
17
- version: 2
18
- enabled: true