sraas 0.4.0 → 0.5.3
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 +5 -5
- data/README.md +1 -1
- data/lib/sraas/configuration.rb +2 -1
- data/lib/sraas/consumer.rb +2 -1
- data/lib/sraas/has_sraas.rb +30 -2
- data/lib/sraas/version.rb +1 -1
- data/lib/sraas.rb +7 -2
- metadata +8 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: d09fea0e576549f83b39b7852ebc1fecdd4b294797359e160dd3a8b9ed041527
|
4
|
+
data.tar.gz: bf44025ea2acaed268b8434fae66efd77b7a38b805f910ca73ea17ba44c4cf6f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e7bad43ba49c2722a0901619bf71718b077787410b4710a07b2540c660af7a947402b3dd790dc23509eeffd580ad5c4f6321e82ae4565d6bf925a16ebe93301
|
7
|
+
data.tar.gz: 93360073d28a7b494410046284308110869f163f92c086dbdea4aa5c6d763d65a33c0657ded82dbb17fef46b31f81fadc2cc740974b54954b3c439e7e239eb43
|
data/README.md
CHANGED
data/lib/sraas/configuration.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
module Sraas
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :url, :api_key, :default_deck_name, :default_deck_fingerprint
|
3
|
+
attr_accessor :url, :api_key, :default_deck_name, :default_deck_fingerprint, :default_timezone
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@url = 'https://www.sraas.io'
|
7
7
|
@api_key = nil
|
8
8
|
@default_deck_name = nil
|
9
9
|
@default_deck_fingerprint = nil
|
10
|
+
@default_timezone = :time_zone
|
10
11
|
end
|
11
12
|
end
|
12
13
|
end
|
data/lib/sraas/consumer.rb
CHANGED
@@ -206,7 +206,8 @@ module Sraas
|
|
206
206
|
|
207
207
|
# Try all search patterns with name and fingerprint
|
208
208
|
# in case one of them is incorrect, but the other correct
|
209
|
-
matching_decks = Sraas.template_decks({name_start: name, fingerprint_start: fingerprint})
|
209
|
+
matching_decks = name.present? ? Sraas.template_decks({name_start: "#{name} v", fingerprint_start: fingerprint}) : []
|
210
|
+
matching_decks = Sraas.template_decks({name_start: name, fingerprint_start: fingerprint}) unless matching_decks.any?
|
210
211
|
matching_decks = Sraas.template_decks({fingerprint_start: fingerprint}) unless matching_decks.any?
|
211
212
|
matching_decks = Sraas.template_decks({name_start: name}) unless matching_decks.any?
|
212
213
|
return false unless matching_decks.any?
|
data/lib/sraas/has_sraas.rb
CHANGED
@@ -5,13 +5,17 @@ module Sraas
|
|
5
5
|
# symbol -- the method to call on this object that returns a deck name
|
6
6
|
# nil -- use the default in configuration or errors...
|
7
7
|
# fingerprint: string -- allows locking to one specific deck version
|
8
|
-
|
8
|
+
# timezone: string -- the timezone to use with Sraas
|
9
|
+
# symbol -- the method to call on this object that returns name of timezone field
|
10
|
+
# nil -- use the default in configuration or errors...
|
11
|
+
def has_sraas(name: nil, fingerprint: nil, deck: nil, timezone: nil)
|
9
12
|
if deck # v1.0 Syntax
|
10
13
|
raise "Since GEM 0.3.0, semantics changed for has_sraas. You need to say has_sraas name: ..."
|
11
14
|
end
|
12
15
|
has_one :sraas, as: :sraas_consumerable, class_name: 'Sraas::Consumer'
|
13
16
|
|
14
17
|
after_create :configure_sraas_consumer!
|
18
|
+
before_update :update_sraas_consumer!
|
15
19
|
|
16
20
|
if name.is_a?(Symbol)
|
17
21
|
# We allow specifying a symbol as a method name/attribute that will return the deck name
|
@@ -20,6 +24,14 @@ module Sraas
|
|
20
24
|
end
|
21
25
|
self.sraas_default_deck_name = name || Sraas.configuration.default_deck_name
|
22
26
|
self.sraas_default_deck_fingerprint = fingerprint || Sraas.configuration.default_deck_fingerprint
|
27
|
+
|
28
|
+
if timezone.is_a?(Symbol)
|
29
|
+
# We allow specifying a symbol as a method name/attribute that will return the name of timezone field
|
30
|
+
# make sure model supports it:
|
31
|
+
raise "[Undefined Method Error] Class '#{self.name}' doesn't have a method '#{timezone}'" unless self.method_defined?(timezone) || self.has_attribute?(timezone)
|
32
|
+
end
|
33
|
+
self.sraas_default_timezone = timezone || Sraas.configuration.default_timezone
|
34
|
+
Time.find_zone!(self.sraas_default_timezone) unless self.sraas_default_timezone.is_a?(Symbol)
|
23
35
|
end
|
24
36
|
end
|
25
37
|
|
@@ -28,6 +40,7 @@ module Sraas
|
|
28
40
|
base.extend ClassMethods
|
29
41
|
base.cattr_accessor(:sraas_default_deck_name)
|
30
42
|
base.cattr_accessor(:sraas_default_deck_fingerprint)
|
43
|
+
base.cattr_accessor(:sraas_default_timezone)
|
31
44
|
end
|
32
45
|
|
33
46
|
def configure_sraas_consumer!
|
@@ -67,8 +80,13 @@ module Sraas
|
|
67
80
|
self.class.sraas_default_deck_fingerprint
|
68
81
|
end
|
69
82
|
|
83
|
+
def consumer_timezone
|
84
|
+
timezone = self.class.sraas_default_timezone
|
85
|
+
timezone.is_a?(Symbol) ? self.send(timezone) : timezone
|
86
|
+
end
|
87
|
+
|
70
88
|
def new_consumer
|
71
|
-
Sraas.sraas_consumer_create(email, tags)
|
89
|
+
Sraas.sraas_consumer_create(email, tags, consumer_timezone)
|
72
90
|
end
|
73
91
|
|
74
92
|
def tags
|
@@ -78,6 +96,16 @@ module Sraas
|
|
78
96
|
def user_tag
|
79
97
|
"user_id=#{id}"
|
80
98
|
end
|
99
|
+
|
100
|
+
def update_sraas_consumer!
|
101
|
+
timezone = self.class.sraas_default_timezone
|
102
|
+
return unless timezone.is_a?(Symbol)
|
103
|
+
|
104
|
+
if self.send("#{timezone}_changed?" )
|
105
|
+
# update consumer timezone on sraas
|
106
|
+
Sraas.sraas_consumer_update_time_zone(sraas.consumer_url, self.send(timezone))
|
107
|
+
end
|
108
|
+
end
|
81
109
|
end
|
82
110
|
end
|
83
111
|
end
|
data/lib/sraas/version.rb
CHANGED
data/lib/sraas.rb
CHANGED
@@ -23,11 +23,16 @@ module Sraas
|
|
23
23
|
JSON.parse(api_resource(:get, consumer_url))
|
24
24
|
end
|
25
25
|
|
26
|
-
def sraas_consumer_create(email, tags = [])
|
27
|
-
payload = { consumer: { email: email, tags: tags.join(',') } }
|
26
|
+
def sraas_consumer_create(email, tags = [], time_zone = 'UTC')
|
27
|
+
payload = { consumer: { email: email, tags: tags.join(','), time_zone: time_zone } }
|
28
28
|
JSON.parse(api_resource(:post, consumers_endpoint, payload))
|
29
29
|
end
|
30
30
|
|
31
|
+
def sraas_consumer_update_time_zone(consumer_url, time_zone)
|
32
|
+
payload = { consumer: { time_zone: time_zone } }
|
33
|
+
JSON.parse(api_resource(:patch, consumer_url, payload))
|
34
|
+
end
|
35
|
+
|
31
36
|
# This function exists so an admin-like UI
|
32
37
|
# can query many consumer IDs at once
|
33
38
|
# and then access them without creating dozens of requests.
|
metadata
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sraas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Siegel
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: rest-client
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '2.0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: rails
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 5.0.6
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 5.0.6
|
41
13
|
- !ruby/object:Gem::Dependency
|
42
14
|
name: hanami-cli
|
43
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,24 +146,23 @@ files:
|
|
174
146
|
homepage: http://no.no/no
|
175
147
|
licenses: []
|
176
148
|
metadata: {}
|
177
|
-
post_install_message:
|
149
|
+
post_install_message:
|
178
150
|
rdoc_options: []
|
179
151
|
require_paths:
|
180
152
|
- lib
|
181
153
|
required_ruby_version: !ruby/object:Gem::Requirement
|
182
154
|
requirements:
|
183
|
-
- - "
|
155
|
+
- - ">="
|
184
156
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
157
|
+
version: '0'
|
186
158
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
187
159
|
requirements:
|
188
160
|
- - ">="
|
189
161
|
- !ruby/object:Gem::Version
|
190
162
|
version: '0'
|
191
163
|
requirements: []
|
192
|
-
|
193
|
-
|
194
|
-
signing_key:
|
164
|
+
rubygems_version: 3.1.6
|
165
|
+
signing_key:
|
195
166
|
specification_version: 4
|
196
167
|
summary: SRAAS.io API Gem
|
197
168
|
test_files: []
|