revrise 0.0.1 → 0.0.2
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.
- data/.autotest +1 -0
- data/.rspec +0 -0
- data/Gemfile.lock +9 -9
- data/lib/revrise/track.rb +7 -19
- data/lib/revrise/version.rb +1 -1
- data/lib/revrise.rb +45 -1
- data/revrise.gemspec +1 -1
- data/spec/fixtures/cassettes/events.yml +40 -0
- data/spec/spec_helper.rb +1 -2
- data/spec/unit/track_spec.rb +13 -1
- metadata +11 -5
data/.autotest
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "autotest/bundler"
|
data/.rspec
ADDED
File without changes
|
data/Gemfile.lock
CHANGED
@@ -9,14 +9,14 @@ GEM
|
|
9
9
|
addressable (2.2.6)
|
10
10
|
crack (0.3.1)
|
11
11
|
diff-lcs (1.1.3)
|
12
|
-
rspec (2.
|
13
|
-
rspec-core (~> 2.
|
14
|
-
rspec-expectations (~> 2.
|
15
|
-
rspec-mocks (~> 2.
|
16
|
-
rspec-core (2.
|
17
|
-
rspec-expectations (2.
|
18
|
-
diff-lcs (~> 1.1.
|
19
|
-
rspec-mocks (2.
|
12
|
+
rspec (2.10.0)
|
13
|
+
rspec-core (~> 2.10.0)
|
14
|
+
rspec-expectations (~> 2.10.0)
|
15
|
+
rspec-mocks (~> 2.10.0)
|
16
|
+
rspec-core (2.10.0)
|
17
|
+
rspec-expectations (2.10.0)
|
18
|
+
diff-lcs (~> 1.1.3)
|
19
|
+
rspec-mocks (2.10.1)
|
20
20
|
vcr (1.11.3)
|
21
21
|
webmock (1.7.10)
|
22
22
|
addressable (~> 2.2, > 2.2.5)
|
@@ -27,6 +27,6 @@ PLATFORMS
|
|
27
27
|
|
28
28
|
DEPENDENCIES
|
29
29
|
revrise!
|
30
|
-
rspec
|
30
|
+
rspec (>= 2.10.0)
|
31
31
|
vcr
|
32
32
|
webmock
|
data/lib/revrise/track.rb
CHANGED
@@ -1,23 +1,11 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
class << self
|
4
|
-
def create(attributes={})
|
5
|
-
attributes = attributes.reject { |k,v| k == :id } if attributes[:id]
|
6
|
-
|
7
|
-
response = run(:post, :set_contact, with_root(attributes))
|
8
|
-
response['result'] ? response['result']['id'].to_i : false
|
9
|
-
end
|
10
|
-
|
11
|
-
def update(attributes={})
|
12
|
-
response = run :post, :set_contact, with_root(attributes)
|
13
|
-
response['result'] ? response['result']['id'].to_i : false
|
14
|
-
end
|
1
|
+
require 'net/http'
|
2
|
+
require 'json'
|
15
3
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
4
|
+
module RevRise
|
5
|
+
class Track < API
|
6
|
+
def initialize( token )
|
7
|
+
@endpoint = "http://api.revrise.com"
|
21
8
|
end
|
9
|
+
|
22
10
|
end
|
23
11
|
end
|
data/lib/revrise/version.rb
CHANGED
data/lib/revrise.rb
CHANGED
@@ -1,6 +1,50 @@
|
|
1
|
+
require "base64"
|
2
|
+
require "json"
|
3
|
+
require 'net/http'
|
4
|
+
|
5
|
+
require 'uri'
|
6
|
+
|
1
7
|
require "revrise/version"
|
2
8
|
require "revrise/api"
|
3
|
-
require "
|
9
|
+
require "revrise/errors"
|
4
10
|
|
5
11
|
module RevRise
|
12
|
+
class Base
|
13
|
+
def initialize( token )
|
14
|
+
@endpoint = "http://api.revrise.com/events/track?token=" + token
|
15
|
+
end
|
16
|
+
|
17
|
+
def track( event_name, properties )
|
18
|
+
event = {
|
19
|
+
:name => event_name,
|
20
|
+
:properties => properties
|
21
|
+
}.to_json
|
22
|
+
|
23
|
+
data = Base64.encode64(event).gsub(/\n/, '')
|
24
|
+
|
25
|
+
url = "#{@endpoint}&data=#{data}"
|
26
|
+
uri = URI(url)
|
27
|
+
|
28
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
29
|
+
size = 1000
|
30
|
+
headers = {
|
31
|
+
'Range' => "bytes=#{size}-"
|
32
|
+
}
|
33
|
+
|
34
|
+
response = begin
|
35
|
+
http.get(uri.to_s, headers)
|
36
|
+
rescue *HTTP_ERRORS => e
|
37
|
+
#log :error, "Unable to contact the RevRise server. HTTP Error=#{e}"
|
38
|
+
nil
|
39
|
+
end
|
40
|
+
|
41
|
+
case response
|
42
|
+
when Net::HTTPSuccess then
|
43
|
+
#log :info, "Success: #{response.class}", response
|
44
|
+
else
|
45
|
+
#log :error, "Failure: #{response.class}", response
|
46
|
+
puts "Unable to reach RevRise API. Check status"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
6
50
|
end
|
data/revrise.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_development_dependency "rspec"
|
21
|
+
s.add_development_dependency "rspec", ">=2.10.0"
|
22
22
|
s.add_development_dependency "vcr"
|
23
23
|
s.add_development_dependency "webmock"
|
24
24
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
---
|
2
|
+
- !ruby/struct:VCR::HTTPInteraction
|
3
|
+
request: !ruby/struct:VCR::Request
|
4
|
+
method: :get
|
5
|
+
uri: http://api.revrise.com:80/events/track?data=eyJwcm9wZXJ0aWVzIjp7InByb3AxIjoiaGVqIGVsbGVyIMOkIGR1IGdvIGkgaMO2dmVldCBlbGxlciIsInlvX21vIjoia2Vra2UifSwibmFtZSI6IiJ9&token=x
|
6
|
+
body:
|
7
|
+
headers:
|
8
|
+
range:
|
9
|
+
- bytes=1000-
|
10
|
+
response: !ruby/struct:VCR::Response
|
11
|
+
status: !ruby/struct:VCR::ResponseStatus
|
12
|
+
code: 409
|
13
|
+
message: Conflict
|
14
|
+
headers:
|
15
|
+
access-control-allow-headers:
|
16
|
+
- Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version
|
17
|
+
access-control-allow-methods:
|
18
|
+
- GET
|
19
|
+
content-md5:
|
20
|
+
- 85evOjGmxU+uPjdDFlphbQ==
|
21
|
+
access-control-expose-headers:
|
22
|
+
- X-Api-Version, X-Request-Id, X-Response-Time
|
23
|
+
content-type:
|
24
|
+
- application/json
|
25
|
+
access-control-allow-origin:
|
26
|
+
- "*"
|
27
|
+
server:
|
28
|
+
- RevRiseAPI
|
29
|
+
x-request-id:
|
30
|
+
- 39e368f3-f8f4-4436-9b03-d1ce30fda13f
|
31
|
+
date:
|
32
|
+
- Mon, 07 May 2012 20:19:50 GMT
|
33
|
+
content-length:
|
34
|
+
- "78"
|
35
|
+
x-response-time:
|
36
|
+
- "2"
|
37
|
+
x-api-version:
|
38
|
+
- 0.0.1
|
39
|
+
body: "{\"code\":\"MissingParameter\",\"message\":\"Encoded event is missing name property\"}"
|
40
|
+
http_version: "1.1"
|
data/spec/spec_helper.rb
CHANGED
data/spec/unit/track_spec.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
module
|
3
|
+
module RevRise
|
4
4
|
describe 'event tracking' do
|
5
|
+
it "encodes a json event" do
|
6
|
+
VCR.use_cassette('events') do
|
7
|
+
|
8
|
+
r = RevRise::Base.new('x')
|
9
|
+
|
10
|
+
r.track 'mah name', {
|
11
|
+
:prop1 => "hej eller ä du go i höveet eller",
|
12
|
+
:yo_mo => "kekke"
|
13
|
+
}
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
5
17
|
end
|
6
18
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: revrise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 27
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Jonas Arnklint
|
@@ -26,10 +26,12 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 39
|
30
30
|
segments:
|
31
|
+
- 2
|
32
|
+
- 10
|
31
33
|
- 0
|
32
|
-
version:
|
34
|
+
version: 2.10.0
|
33
35
|
type: :development
|
34
36
|
version_requirements: *id001
|
35
37
|
- !ruby/object:Gem::Dependency
|
@@ -71,7 +73,9 @@ extra_rdoc_files: []
|
|
71
73
|
|
72
74
|
files:
|
73
75
|
- .DS_Store
|
76
|
+
- .autotest
|
74
77
|
- .gitignore
|
78
|
+
- .rspec
|
75
79
|
- Gemfile
|
76
80
|
- Gemfile.lock
|
77
81
|
- README.md
|
@@ -82,6 +86,7 @@ files:
|
|
82
86
|
- lib/revrise/track.rb
|
83
87
|
- lib/revrise/version.rb
|
84
88
|
- revrise.gemspec
|
89
|
+
- spec/fixtures/cassettes/events.yml
|
85
90
|
- spec/spec_helper.rb
|
86
91
|
- spec/unit/track_spec.rb
|
87
92
|
has_rdoc: true
|
@@ -119,5 +124,6 @@ signing_key:
|
|
119
124
|
specification_version: 3
|
120
125
|
summary: Track events and gain insightful actionable metrics through RevRise
|
121
126
|
test_files:
|
127
|
+
- spec/fixtures/cassettes/events.yml
|
122
128
|
- spec/spec_helper.rb
|
123
129
|
- spec/unit/track_spec.rb
|