tamber 0.1.4 → 0.1.6

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.
@@ -1,89 +0,0 @@
1
- require "cgi"
2
- require "json"
3
-
4
- module Tamber
5
- module Util
6
-
7
- def self.encode_parameters(params)
8
- Util.flatten_params(params).
9
- map { |k,v| "#{url_encode(k)}=#{url_encode(v)}" }.join('&')
10
- end
11
-
12
- def self.url_encode(key)
13
- CGI.escape(key.to_s).
14
- gsub('%5B', '[').gsub('%5D', ']')
15
- end
16
-
17
- def self.flatten_params(params, parent_key=nil)
18
- result = []
19
-
20
- params.sort_by { |(k, v)| k.to_s }.each do |key, value|
21
- calculated_key = parent_key ? "#{parent_key}[#{key}]" : "#{key}"
22
- if value.is_a?(Hash) || value.is_a?(Array) || value.is_a?(APIResource)
23
- result << [calculated_key, value.to_json]
24
- else
25
- result << [calculated_key, value]
26
- end
27
- end
28
-
29
- result
30
- end
31
-
32
- def self.object_classes
33
- @object_classes ||= {
34
- # Core
35
- 'event' => Event,
36
- 'discovery' => Discovery,
37
-
38
- # Expanded
39
- 'user' => User,
40
- 'item' => Item,
41
- 'behavior' => Behavior,
42
- }
43
- end
44
-
45
- def self.convert_full(resp)
46
- case resp
47
- when Hash
48
- object_classes.fetch(resp[:object],TamberObject).construct_from(resp)
49
- when Array
50
- resp.map { |i| convert_full(i) }
51
- else
52
- resp
53
- end
54
- end
55
-
56
- def self.convert_to_tamber_object(resp)
57
- case resp
58
- when Hash
59
- object_classes.fetch(resp[:object],TamberObject).construct_from(resp)
60
- when Array
61
- if resp.size == 1
62
- resp = resp[0]
63
- self.convert_full(resp)
64
- else
65
- resp.map { |i| convert_full(i) }
66
- end
67
- else
68
- resp
69
- end
70
- end
71
-
72
- def self.symbolize_names(object)
73
- case object
74
- when Hash
75
- new_hash = {}
76
- object.each do |key, value|
77
- key = (key.to_sym rescue key) || key
78
- new_hash[key] = symbolize_names(value)
79
- end
80
- new_hash
81
- when Array
82
- object.map { |value| symbolize_names(value) }
83
- else
84
- object
85
- end
86
- end
87
-
88
- end
89
- end
@@ -1,3 +0,0 @@
1
- module Tamber
2
- VERSION = '0.1.4'
3
- end
@@ -1,35 +0,0 @@
1
- $:.unshift(File.join(File.dirname(__FILE__), 'lib'))
2
-
3
- require 'tamber/version'
4
-
5
- spec = Gem::Specification.new do |s|
6
- s.name = 'tamber'
7
- s.version = Tamber::VERSION
8
- s.required_ruby_version = '>= 1.9.3'
9
- s.summary = 'Ruby bindings for the Tamber API'
10
- s.description = 'Tamber is the easiest way to put head-scratchingly accurate, real time recommendations in your app. See https://tamber.com for details.'
11
- s.homepage = 'https://tamber.com/docs/api'
12
- s.license = 'MIT'
13
- s.authors = ['Alexi Robbins', 'Mark Canning']
14
- s.email = ['alexi@tamber.com', 'argusdusty@tamber.com']
15
-
16
- s.add_dependency('rest-client', '~> 1.4')
17
- s.add_dependency('json', '~> 1.8.1')
18
- s.add_dependency('activesupport', '~> 4.2.4')
19
-
20
- s.add_development_dependency('mocha', '~> 0.13.2')
21
- s.add_development_dependency('shoulda', '~> 3.4.0')
22
- s.add_development_dependency('test-unit')
23
- s.add_development_dependency('rake')
24
-
25
- if Gem::Version.new(RUBY_VERSION.dup) > Gem::Version.new('2.0.0')
26
- s.add_development_dependency("byebug")
27
- s.add_development_dependency("pry")
28
- s.add_development_dependency("pry-byebug")
29
- end
30
-
31
- s.files = `git ls-files`.split("\n")
32
- s.test_files = `git ls-files -- test/*`.split("\n")
33
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
34
- s.require_paths = ['lib']
35
- end