tamber 0.1.4 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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