tamber 0.1.10 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f8004eba3105bccbba37c06ea731792477a3a6a5
4
- data.tar.gz: 4258a7685450ee4e22a553f019917068840c9fa2
2
+ SHA256:
3
+ metadata.gz: cbcc5f581e5dcfe9f92aa08dda5925063b04bcdef53018d53109568e238ee20c
4
+ data.tar.gz: 2a5e6a4bbdaa10de0148dcc2ad44bf05b08ed38b68741b0d27f8579055e25ac2
5
5
  SHA512:
6
- metadata.gz: a207f215cf2c5fa4a6aa7308b6d4d3bb48ff58856ae5ee7488e60cb41bf6e24078134f603f5370d24fb293fa7612ef440c58b99f836ae2074ca69c7d263d2830
7
- data.tar.gz: 0f58d0e36a8c03fb44b6e882829d0a052e7d71538dd2eb5271abdd14b4b4f3c754ffbcae861e84e4034e84fddeae2dfae06095284dfd4e3bf9409df288f4bdbf
6
+ metadata.gz: 7680dd74aa4eabc5db6b28bbd1e51fa091d53984b059a426b423b69960bccc7f6064729d4453c972a70a3d6fc07a9dd3a8dd851a925c7638446bc6a99d48684f
7
+ data.tar.gz: 67dc999d917874866db92440b77f7d02f3ec5129561eb44425eaf2decc2e954f29e78f3dcfd5458cdaf4fd3b205b39e4b86f818baeab916d93b4344785532561
@@ -4,8 +4,8 @@ before_install:
4
4
  - gem update bundler # -v 1.7.14 if a specific version is needed
5
5
 
6
6
  rvm:
7
- - 1.9.3
8
7
  - 2.0.0
9
8
  - 2.1
10
9
  - 2.2
10
+ - 2.5
11
11
  - jruby-19mode
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2016 Tamber, Inc.
3
+ Copyright (c) 2019 Tamber, Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Recommendation engines for developers, easy as π. Build blazing fast, head-scratchingly accurate hosted recommendation engines in minutes.
4
4
 
5
- The Tamber iOS SDK makes it easy to track events (user-item interactions) and get recommendations for your users inside your iOS app.
5
+ The Tamber iOS SDK makes it easy to track events (user-item interactions) and get recommendations for your users in real time.
6
6
 
7
7
  [Get a free api key][homepage] to get started.
8
8
 
@@ -48,7 +48,10 @@ begin
48
48
  user: 'user_rlox8k927z7p',
49
49
  behavior: 'like'
50
50
  item: 'item_wmt4fn6o4zlk',
51
- context: ["homepage", "featured_section"]
51
+ context: {
52
+ "page": "homepage",
53
+ "section": "featured_section"
54
+ }
52
55
  )
53
56
  rescue TamberError => error
54
57
  puts error.message
@@ -60,19 +63,18 @@ end
60
63
 
61
64
  Once you have tracked enough events and created your engine, it's time to put personalized recommendations in your app.
62
65
 
63
- The primary method of discovery in Tamber is the `Discover.next` method, which returns the optimal set of items that the user should be shown next.
66
+ The primary methods of discovery in Tamber are the `Discover.next` and `Discover.recommended` methods, which returns the optimal set of items that the user should be shown next on a given item page, and in a personalized recommendations section, respectively.
64
67
 
65
- #### For You
68
+ #### Up Next
66
69
 
67
- To put personalized recommendations on your homepage, or in any recommended section, just call `Discover.next` with the given user's id and the number of recommendations you want to display.
70
+ Don't make an item page a dead-end. Keep users engaged by creating paths of discovery as they navigate from item to item, always showing the right mix of items they should check out next. Just supply the user and the item that they are navigating to / looking at.
68
71
 
69
72
  ```rb
70
- Tamber.project_key = 'your_project_key'
71
-
72
73
  begin
73
74
  d = Tamber::Discover.next(
74
75
  user: 'user_rlox8k927z7p',
75
- number: 10
76
+ item: 'item_wmt4fn6o4zlk',
77
+ number: 14
76
78
  )
77
79
  d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
78
80
  rescue TamberError => error
@@ -80,16 +82,17 @@ rescue TamberError => error
80
82
  end
81
83
  ```
82
84
 
83
- #### Up Next
85
+ #### For You
84
86
 
85
- Keep users engaged by creating a path of discovery as they navigate from item to item, always showing the right mix of items they should check out next. Just add the id of the item that the user is navigating to / looking at.
87
+ To put personalized recommendations on your homepage, or in any recommended section, just call `Discover.recommended` with the given user's id and the number of recommendations you want to display.
86
88
 
87
89
  ```rb
90
+ Tamber.project_key = 'your_project_key'
91
+
88
92
  begin
89
- d = Tamber::Discover.next(
93
+ d = Tamber::Discover.recommended(
90
94
  user: 'user_rlox8k927z7p',
91
- item: 'item_wmt4fn6o4zlk',
92
- number: 14
95
+ number: 10
93
96
  )
94
97
  d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
95
98
  rescue TamberError => error
@@ -100,9 +103,9 @@ end
100
103
 
101
104
  ##### `continuation`
102
105
 
103
- `Discover.next` is optimized for the exact moment and context of the user at the time of request, so standard pagination is not possible. Instead, `Discover.next` uses automatic continuation to allow you to 'show more' or implement infinite scrolling.
106
+ Recommendations are optimized for the exact moment and context of the user at the time of request, but sometimes a user wants to see more recommended items than are shown by default. In order to 'Show More', Tamber supports automatic continuation.
104
107
 
105
- When you want to add more recommendations to those currently displayed to the user, just set the `continuation` field to `true`. Tamber will automatically generate the set of items that should be appended to the current user-session's list. The `Discover.next` user-session is reset when `Discover.next` is called without `continuation`.
108
+ When you want to add more recommendations to those currently displayed to the user, just set the `continuation` field to `true`. Tamber will automatically generate the set of items that should be appended to the current user-session's list. The user-session is reset when `Discover.recommended` or `Discover.next` is called without `continuation`.
106
109
 
107
110
  ```rb
108
111
  Tamber.project_key = 'your_project_key'
@@ -126,21 +129,21 @@ Help your users keep their fingers on the pulse of your platform by showing them
126
129
 
127
130
  ```rb
128
131
  begin
129
- d = Tamber::Discover.hot() // the hottest (trending) items
132
+ d = Tamber::Discover.hot # the hottest (trending) items
130
133
  d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
131
134
  end
132
135
 
133
136
  begin
134
- d = Tamber::Discover.popular() // the hottest (trending) items
137
+ d = Tamber::Discover.popular # the most popular items
135
138
  end
136
139
 
137
140
  # BETA endpoints
138
141
  begin
139
- d = Tamber::Discover.uac() // the most up-and-coming items
142
+ d = Tamber::Discover.uac # the most up-and-coming items
140
143
  end
141
144
 
142
145
  begin
143
- d = Tamber::Discover.new() // the newest items
146
+ d = Tamber::Discover.new # the newest items
144
147
  end
145
148
  ```
146
149
 
@@ -150,19 +153,19 @@ Tamber allows you to use lower-level methods to get lists of recommended items,
150
153
 
151
154
  ```rb
152
155
  begin
153
- Tamber::Discover.recommended(user: 'user_rlox8k927z7p').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
156
+ Tamber::Discover::Basic.recommended(user: 'user_rlox8k927z7p').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
154
157
  rescue TamberError => error
155
158
  puts error.message
156
159
  end
157
160
 
158
161
  begin
159
- Tamber::Discover.similar(item: 'item_wmt4fn6o4zlk').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
162
+ Tamber::Discover::Basic.Similar(item: 'item_wmt4fn6o4zlk').each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
160
163
  rescue TamberError => error
161
164
  puts error.message
162
165
  end
163
166
 
164
167
  begin
165
- Tamber::Discover.recommendedSimilar(
168
+ Tamber::Discover::Basic.RecommendedSimilar(
166
169
  user: 'user_rlox8k927z7p',
167
170
  item: 'item_wmt4fn6o4zlk'
168
171
  ).each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.10
1
+ 0.2.0
@@ -13,6 +13,7 @@ require 'json'
13
13
  require 'tamber/version'
14
14
 
15
15
  require 'tamber/api_operations/create'
16
+ require 'tamber/api_operations/save'
16
17
  require 'tamber/api_operations/update'
17
18
  require 'tamber/api_operations/remove'
18
19
  require 'tamber/api_operations/retrieve'
@@ -157,7 +158,7 @@ module Tamber
157
158
  "'host tamber.com' from the command line and try again. " \
158
159
  "Still borked? Email us at support@tamber.com and we'll get to the bottom of it."
159
160
 
160
- when RestClient::Timeout
161
+ when RestClient::RequestTimeout
161
162
  message = "Could not connect to Tamber at #{api_url}. " \
162
163
  "Please check your internet connection and try again. " \
163
164
  "Still borked? Email us at support@tamber.com and we'll get to the bottom of it."
@@ -3,7 +3,7 @@ module Tamber
3
3
  module Remove
4
4
  def remove(params={})
5
5
  response = request(:get, url+"/remove", params)
6
- # initialize_from(response, opts)
6
+ Util.convert_to_tamber_object(response)
7
7
  end
8
8
  end
9
9
  end
@@ -10,7 +10,14 @@ module Tamber
10
10
  if self == APIResource
11
11
  raise TamberError.new('APIResource is an abstract class. You should perform actions on its subclasses (Event, Discover, etc.)')
12
12
  end
13
- "/#{CGI.escape(class_name.downcase)}"
13
+
14
+ if class_name.downcase == "basic"
15
+ "/discover/#{CGI.escape(class_name.downcase)}"
16
+ elsif class_name.downcase == "usertrend"
17
+ "/discover/user_trend"
18
+ else
19
+ "/#{CGI.escape(class_name.downcase)}"
20
+ end
14
21
  end
15
22
 
16
23
  def url
@@ -1,6 +1,5 @@
1
1
  module Tamber
2
2
  class Discover < APIResource
3
-
4
3
  def self.next(params={})
5
4
  response = request(:get, self.next_url, params)
6
5
  Util.convert_to_tamber_object(response)
@@ -11,15 +10,15 @@ module Tamber
11
10
  Util.convert_to_tamber_object(response)
12
11
  end
13
12
 
14
- def self.similar(params={})
15
- response = request(:get, self.similar_url, params)
13
+ def self.weekly(params={})
14
+ response = request(:get, self.weekly_url, params)
16
15
  Util.convert_to_tamber_object(response)
17
- end
16
+ end
18
17
 
19
- def self.recommendedSimilar(params={})
20
- response = request(:get, self.recommendedSimilar_url, params)
18
+ def self.daily(params={})
19
+ response = request(:get, self.daily_url, params)
21
20
  Util.convert_to_tamber_object(response)
22
- end
21
+ end
23
22
 
24
23
  def self.meta(params={})
25
24
  response = request(:get, self.meta_url, params)
@@ -46,20 +45,25 @@ module Tamber
46
45
  Util.convert_to_tamber_object(response)
47
46
  end
48
47
 
48
+ def self.uac(params={})
49
+ response = request(:get, self.uac_url, params)
50
+ Util.convert_to_tamber_object(response)
51
+ end
52
+
49
53
  def self.recommended_url
50
54
  url + '/recommended'
51
55
  end
52
56
 
53
- def self.similar_url
54
- url + '/similar'
57
+ def self.next_url
58
+ url + '/next'
55
59
  end
56
60
 
57
- def self.recommendedSimilar_url
58
- url + '/recommended_similar'
61
+ def self.weekly_url
62
+ url + '/weekly'
59
63
  end
60
64
 
61
- def self.next_url
62
- url + '/next'
65
+ def self.daily_url
66
+ url + '/daily'
63
67
  end
64
68
 
65
69
  def self.meta_url
@@ -82,6 +86,66 @@ module Tamber
82
86
  url + '/new'
83
87
  end
84
88
 
89
+ class UserTrend < APIResource
90
+ def self.popular(params={})
91
+ response = request(:get, self.popular_url, params)
92
+ Util.convert_to_tamber_object(response)
93
+ end
94
+
95
+ def self.hot(params={})
96
+ response = request(:get, self.hot_url, params)
97
+ Util.convert_to_tamber_object(response)
98
+ end
99
+
100
+ def self.uac(params={})
101
+ response = request(:get, self.uac_url, params)
102
+ Util.convert_to_tamber_object(response)
103
+ end
104
+
105
+ def self.popular_url
106
+ url + '/popular'
107
+ end
108
+
109
+ def self.hot_url
110
+ url + '/hot'
111
+ end
112
+
113
+ def self.uac_url
114
+ url + '/uac'
115
+ end
116
+ end
117
+
118
+ # deprecated
119
+ class Basic < APIResource
120
+ def self.recommended(params={})
121
+ warn "[DEPRECATION] `Discover.Basic.recommended` is deprecated. Please use `Discover.recommended` instead."
122
+ response = request(:get, self.recommended_url, params)
123
+ Util.convert_to_tamber_object(response)
124
+ end
125
+
126
+ def self.similar(params={})
127
+ warn "[DEPRECATION] `Discover.Basic.similar` is deprecated. Please use `Discover.next` instead."
128
+ response = request(:get, self.similar_url, params)
129
+ Util.convert_to_tamber_object(response)
130
+ end
131
+
132
+ def self.recommendedSimilar(params={})
133
+ warn "[DEPRECATION] `Discover.Basic.recommendedSimilar` is deprecated. Please use `Discover.next` instead."
134
+ response = request(:get, self.recommendedSimilar_url, params)
135
+ Util.convert_to_tamber_object(response)
136
+ end
137
+ def self.recommended_url
138
+ url + '/recommended'
139
+ end
140
+
141
+ def self.similar_url
142
+ url + '/similar'
143
+ end
144
+
145
+ def self.recommendedSimilar_url
146
+ url + '/recommended_similar'
147
+ end
148
+ end
85
149
  end
86
150
 
87
151
  # Discover requests return an array of 'discovery' objects
@@ -1,10 +1,17 @@
1
1
  module Tamber
2
2
  class Item < APIResource
3
3
  extend Tamber::APIOperations::Create
4
+ extend Tamber::APIOperations::Save
4
5
  extend Tamber::APIOperations::Update
5
6
  extend Tamber::APIOperations::Retrieve
6
7
  extend Tamber::APIOperations::List
7
8
 
9
+ # hide an item from all Discover results
10
+ def self.batch(params={})
11
+ response = request(:post, self.batch_url, params)
12
+ Util.convert_to_tamber_object(response)
13
+ end
14
+
8
15
  # hide an item from all Discover results
9
16
  def self.hide(params={})
10
17
  response = request(:post, self.hide_url, params)
@@ -23,6 +30,10 @@ module Tamber
23
30
  Util.convert_to_tamber_object(response)
24
31
  end
25
32
 
33
+ def self.batch_url
34
+ url + '/batch'
35
+ end
36
+
26
37
  def self.hide_url
27
38
  url + '/hide'
28
39
  end
@@ -1,12 +1,19 @@
1
1
  module Tamber
2
2
  class User < APIResource
3
3
  extend Tamber::APIOperations::Create
4
- extend Tamber::APIOperations::Update
4
+ extend Tamber::APIOperations::Save
5
5
  extend Tamber::APIOperations::Retrieve
6
6
  extend Tamber::APIOperations::List
7
7
 
8
+ def self.update(params={})
9
+ warn "[DEPRECATION] `User.update` is deprecated. Please use `User.save` instead."
10
+ response = request(:post, url + '/update', params)
11
+ Util.convert_to_tamber_object(response)
12
+ end
13
+
8
14
  def self.search(params={})
9
- response = request(:post, url + '/search', params)
15
+ warn "[DEPRECATION] `User.search` is deprecated. Please use `User.list` instead."
16
+ response = request(:post, url + '/list', params)
10
17
  Util.convert_to_tamber_object(response)
11
18
  end
12
19
 
@@ -14,6 +21,13 @@ module Tamber
14
21
  response = request(:post, url + '/merge', params)
15
22
  Util.convert_to_tamber_object(response)
16
23
  end
24
+
25
+ # Deprecated in api version 2020-6-11
26
+ def self.update(params={})
27
+ warn "[DEPRECATION] `User.update` is deprecated. Please use `User.save` instead."
28
+ response = request(:post, url + '/save', params)
29
+ Util.convert_to_tamber_object(response)
30
+ end
17
31
 
18
32
  end
19
33
  end
@@ -1,3 +1,3 @@
1
1
  module Tamber
2
- VERSION = '0.1.10'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -13,8 +13,8 @@ spec = Gem::Specification.new do |s|
13
13
  s.authors = ['Alexi Robbins', 'Mark Canning']
14
14
  s.email = ['alexi@tamber.com', 'argusdusty@tamber.com']
15
15
 
16
- s.add_dependency('rest-client', '~> 1.4')
17
- s.add_dependency('json', '~> 1.8.1')
16
+ s.add_dependency('rest-client', '~> 2.0')
17
+ s.add_dependency('json', '>= 1.8.1')
18
18
  s.add_dependency('activesupport', '>= 4.2.4')
19
19
 
20
20
  s.add_development_dependency('mocha', '~> 0.13.2')
@@ -76,7 +76,7 @@ module Tamber
76
76
 
77
77
  should "return similar" do
78
78
  begin
79
- d = Tamber::Discover.similar(
79
+ d = Tamber::Discover::Basic.similar(
80
80
  :item => 'item_i5gq90scc1'
81
81
  )
82
82
  d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
@@ -85,7 +85,7 @@ module Tamber
85
85
 
86
86
  should "return recommendedSimilar" do
87
87
  begin
88
- d = Tamber::Discover.recommendedSimilar(
88
+ d = Tamber::Discover::Basic.recommendedSimilar(
89
89
  :user => 'user_jctzgisbru',
90
90
  :item => 'item_i5gq90scc1'
91
91
  )
@@ -93,5 +93,14 @@ module Tamber
93
93
  end
94
94
  end
95
95
 
96
+ should "return user hot" do
97
+ begin
98
+ d = Tamber::Discover::UserTrend.hot(
99
+ :user => 'user_jctzgisbru'
100
+ )
101
+ d.each { |rec| puts "item: #{rec.item}, score: #{rec.score}"}
102
+ end
103
+ end
104
+
96
105
  end
97
106
  end
@@ -9,8 +9,7 @@ module Tamber
9
9
  :item => 'item_i5gq90scc1',
10
10
  :behavior => 'mention',
11
11
  :hit => true,
12
- :context => ['recommended', 'detail-view'],
13
- :get_recs => {}
12
+ :context => {'page'=>'recommended'}
14
13
  )
15
14
  puts e
16
15
  end
@@ -9,7 +9,7 @@ class Test::Unit::TestCase
9
9
 
10
10
  setup do
11
11
  Tamber.project_key = "Mu6DUPXdDYe98cv5JIfX"
12
- Tamber.engine_key = "SbWYPBNdARfIDa0IIO9L"
12
+ Tamber.api_version = "2020-6-11"
13
13
  Tamber.open_timeout = 3
14
14
  Tamber.read_timeout = 2
15
15
  end
@@ -59,19 +59,19 @@ module Tamber
59
59
  end
60
60
  end
61
61
 
62
- should "search user" do
63
- begin
64
- users = Tamber::User.search(
65
- :filter => {
66
- 'city' => 'Mountain View, CA'
67
- }
68
- )
69
- puts users.inspect
70
- # assert users.length >= 1
71
- rescue TamberError => error
72
- puts error.message
73
- end
74
- end
62
+ # should "search user" do
63
+ # begin
64
+ # users = Tamber::User.search(
65
+ # :filter => {
66
+ # 'city' => 'Mountain View, CA'
67
+ # }
68
+ # )
69
+ # puts users.inspect
70
+ # # assert users.length >= 1
71
+ # rescue TamberError => error
72
+ # puts error.message
73
+ # end
74
+ # end
75
75
 
76
76
  # Breaks production test
77
77
  # should "merge user" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tamber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.10
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexi Robbins
@@ -9,104 +9,104 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-04-12 00:00:00.000000000 Z
12
+ date: 2020-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '1.4'
20
+ version: '2.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '1.4'
27
+ version: '2.0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: json
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - ">="
33
33
  - !ruby/object:Gem::Version
34
34
  version: 1.8.1
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 1.8.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: activesupport
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: 4.2.4
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: 4.2.4
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: mocha
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ~>
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: 0.13.2
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ~>
67
+ - - "~>"
68
68
  - !ruby/object:Gem::Version
69
69
  version: 0.13.2
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: shoulda
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ~>
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
76
  version: 3.4.0
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ~>
81
+ - - "~>"
82
82
  - !ruby/object:Gem::Version
83
83
  version: 3.4.0
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: test-unit
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '>='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rake
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - '>='
102
+ - - ">="
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '>='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  description: Tamber is the easiest way to put head-scratchingly accurate, real time
@@ -118,8 +118,8 @@ executables: []
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
- - .gitignore
122
- - .travis.yml
121
+ - ".gitignore"
122
+ - ".travis.yml"
123
123
  - Gemfile
124
124
  - LICENSE
125
125
  - README.md
@@ -161,17 +161,17 @@ require_paths:
161
161
  - lib
162
162
  required_ruby_version: !ruby/object:Gem::Requirement
163
163
  requirements:
164
- - - '>='
164
+ - - ">="
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.9.3
167
167
  required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  requirements:
169
- - - '>='
169
+ - - ">="
170
170
  - !ruby/object:Gem::Version
171
171
  version: '0'
172
172
  requirements: []
173
173
  rubyforge_project:
174
- rubygems_version: 2.0.3
174
+ rubygems_version: 2.7.3
175
175
  signing_key:
176
176
  specification_version: 4
177
177
  summary: Ruby bindings for the Tamber API