arcticelvis 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f984fab7a36ecb4ada90b650f43ed3318a1dce4c
4
+ data.tar.gz: 8a03ae8b11c92f1f73c92a9f59a23176322e0e89
5
+ SHA512:
6
+ metadata.gz: b9e56aad3247751eefca75dbd813f5c93dfa5a9a91e20bb4770d0325b761fefd16bb287da93973404535fb4e5244129865964d186386e437e3eb7a880bdd2287
7
+ data.tar.gz: fd4791255d89929a0871a3a2481f1e95732d265720354e1e55956b270db1d4cd266745333f8fd51274584c85312d37fa1db8c1bf3913911bb5508a8b60c806e1
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in arctic_elvis.gemspec
4
+ gemspec
@@ -0,0 +1,25 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard :rspec do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+
17
+ # Capybara features specs
18
+ watch(%r{^app/views/(.+)/.*\.(erb|haml|slim)$}) { |m| "spec/features/#{m[1]}_spec.rb" }
19
+
20
+ # Turnip features and steps
21
+ watch(%r{^spec/acceptance/(.+)\.feature$})
22
+ watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
23
+ end
24
+
25
+
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 ArcticElvis AS
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,105 @@
1
+ # ArcticElvis
2
+
3
+ ArcticElvis is a fisherman from a long line of fishermen in the upmost arctic parts of Norway. He can help you get more fish - aka sell more. This is a ruby client for `api.arcticelvis.com`.
4
+
5
+ The API is documentet here: [http://docs.arcticelvis.apiary.io/](http://docs.arcticelvis.apiary.io/) (work in progress)
6
+
7
+ ## Installation
8
+
9
+ Add this line to your application's Gemfile:
10
+
11
+ gem 'arcticelvis'
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install arcticelvis
20
+
21
+ ## Usage
22
+
23
+ ### Configuration
24
+
25
+ Setup the API key. It can be found under the settings meny in the app.
26
+
27
+ ```
28
+ Arcticelvis.configure do |config|
29
+ config.api_key = 'YOUR_API_KEY'
30
+ end
31
+ ```
32
+
33
+ ### Events
34
+ Events let you trigger event emails.
35
+
36
+ #### Trigger
37
+
38
+ ```
39
+ event = Arcticelvis::Event.new(id: YOUR_EVENT_ID)
40
+
41
+ event.trigger({
42
+ to: 'email@example.com',
43
+ payload: {
44
+ name: "Bob roy",
45
+ personal_greeting: "Thanks for the signup Bob!",
46
+ favorite_colors: ['red', 'blue']
47
+ }
48
+ })
49
+
50
+ ```
51
+
52
+ #### Find
53
+ Will lookup an event and all its messages
54
+
55
+ ```
56
+ event = Arcticelvis::Event.find("EVENT_ID")
57
+ event.name #=> "New Signup"
58
+ event_message = event.event_messages[0]
59
+ event_message.state #=> "paused"
60
+
61
+ ```
62
+
63
+
64
+ #### Preview event messages
65
+ TODO: make something like letter opener
66
+
67
+ ```
68
+
69
+ event_message = Arcticelvis::EventMessage.new(id: EVENT_MESSAGE_ID, event_id: EVENT_ID)
70
+ event_message.preview({
71
+ payload: {
72
+ name: "ArcticElvis",
73
+ age: 98
74
+ }
75
+ })
76
+
77
+ #simplified preview output =>
78
+ "<html>…Thanks for the signup ArcticElvis, you are 98 years old. Really!?…</html>
79
+
80
+ ```
81
+
82
+ you can also lookup an event and loop through its messages
83
+
84
+ ```
85
+ event = Arcticelvis::Event.find("EVENT_ID")
86
+ event_message = event.event_messages.first
87
+ event_message.preview({
88
+ payload: {
89
+ name: "ArcticElvis",
90
+ age: 98
91
+ }
92
+ })
93
+ ```
94
+
95
+
96
+
97
+
98
+
99
+ ## Contributing
100
+
101
+ 1. Fork it ( http://github.com/arcticelvis/arcticelvis-ruby/fork )
102
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
103
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
104
+ 4. Push to the branch (`git push origin my-new-feature`)
105
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'arcticelvis/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "arcticelvis"
8
+ spec.version = Arcticelvis::VERSION
9
+ spec.authors = ["Christian Hager"]
10
+ spec.email = ["persson.hager@gmail.com"]
11
+ spec.summary = %q{A client for the ArcticElvis API}
12
+ spec.description = %q{ArcticElvis will help you get more fish, aka sell more. This is a fishing pole.}
13
+ spec.homepage = "https://github.com/arcticelvis/arcticelvis-ruby"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "faraday", "~> 0.8.8"
22
+ spec.add_dependency "json", "~> 1.8.1"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.5"
25
+ spec.add_development_dependency "rake"
26
+ spec.add_development_dependency "rspec"
27
+ spec.add_development_dependency "guard"
28
+ spec.add_development_dependency "vcr", "~> 2.8.0"
29
+ spec.add_development_dependency "webmock"
30
+ end
@@ -0,0 +1,22 @@
1
+ require "arcticelvis/version"
2
+ require "arcticelvis/configuration"
3
+ require "arcticelvis/request"
4
+ require "arcticelvis/base"
5
+ require "arcticelvis/event"
6
+ require "arcticelvis/event_message"
7
+
8
+
9
+ module Arcticelvis
10
+ extend Configuration
11
+
12
+ class ArcticelvisError < StandardError; end
13
+ class AuthenticationError < ArcticelvisError; end
14
+ class InvalidOptionsError < ArcticelvisError; end
15
+ class RecordNotFoundError < ArcticelvisError; end
16
+
17
+ class << self
18
+ def request(http_method, api_url, data)
19
+ Request.new(http_method, api_url, data).perform
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,29 @@
1
+ module Arcticelvis
2
+ class Base
3
+
4
+ attr_accessor :created_at, :updated_at
5
+
6
+ # Initializes the object using the given attributes
7
+ #
8
+ # @param [Hash] attributes The attributes to use for initialization
9
+ def initialize(attributes = {})
10
+ set_attributes(attributes)
11
+ parse_timestamps
12
+ end
13
+
14
+ # Sets the attributes
15
+ #
16
+ # @param [Hash] attributes The attributes to initialize
17
+ def set_attributes(attributes)
18
+ attributes.each_pair do |key, value|
19
+ instance_variable_set("@#{key}", value)
20
+ end
21
+ end
22
+
23
+ # Parses UNIX timestamps and creates Time objects.
24
+ def parse_timestamps
25
+ @created_at = DateTime.parse(created_at) if created_at
26
+ @updated_at = DateTime.parse(updated_at) if updated_at
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,26 @@
1
+ module Arcticelvis
2
+ module Configuration
3
+ VALID_CONFIG_KEYS = [:api_key].freeze
4
+ DEFAULT_API_KEY = nil
5
+ API_HOST = "http://api.arcticelvis.com"
6
+
7
+ attr_accessor *VALID_CONFIG_KEYS
8
+
9
+ # setup defaults on extend
10
+ def self.extended(base)
11
+ base.reset
12
+ end
13
+
14
+ def reset
15
+ self.api_key = DEFAULT_API_KEY
16
+ end
17
+
18
+ def configure
19
+ yield self
20
+ end
21
+
22
+ def options
23
+ Hash[ * VALID_CONFIG_KEYS.map { |key| [key, send(key)] }.flatten ]
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,35 @@
1
+ module Arcticelvis
2
+ class Event < Base
3
+ attr_accessor :id, :name, :event_messages
4
+
5
+ class << self
6
+ def find(id)
7
+ response, status = Arcticelvis.request(:get, "events/#{id}", {})
8
+ raise RecordNotFoundError if status == 404
9
+
10
+ event_messages = response["event"]["event_messages"]
11
+ response["event"].delete("event_messages")
12
+ event = self.new(response["event"])
13
+
14
+ if event_messages
15
+ res = []
16
+ event_messages.each do |event_message|
17
+ res << Arcticelvis::EventMessage.new(event_message)
18
+ end
19
+ end
20
+ event.event_messages = res if res
21
+ event
22
+ end
23
+ end
24
+
25
+ def trigger(options={})
26
+ raise InvalidOptionsError.new("no email given") unless options[:to]
27
+ response, status = Arcticelvis.request(:post, "events/#{id}/trigger", options)
28
+ raise RecordNotFoundError if status == 404
29
+ if status == 201
30
+ set_attributes(response["event_instance"]["event"])
31
+ return self
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,11 @@
1
+ module Arcticelvis
2
+ class EventMessage < Base
3
+ attr_accessor :id, :event_id, :subject, :preview, :state
4
+
5
+ def preview(payload={})
6
+ response, status = Arcticelvis.request(:post, "events/#{event_id}/event_messages/#{id}/preview", payload)
7
+ raise Arcticelvis::RecordNotFoundError if status == 404
8
+ response["event_message"]["preview"]
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,44 @@
1
+ require 'faraday'
2
+ require 'json'
3
+ module Arcticelvis
4
+ class Request
5
+
6
+ def initialize(http_method, api_url, data)
7
+ raise Arcticelvis::AuthenticationError if Arcticelvis.api_key.nil?
8
+ @conn = Faraday.new(url: Arcticelvis::Configuration::API_HOST)
9
+ @api_url = api_url
10
+ @data = data
11
+ @http_method = http_method
12
+ end
13
+
14
+ def perform
15
+ case @http_method
16
+ when :get
17
+ response = @conn.get do |req|
18
+ req.url "/api/v2/#{@api_url}.json"
19
+ req.headers['Content-Type'] = 'application/json'
20
+ req.headers['Authorization'] = "Token token=#{Arcticelvis.api_key}"
21
+ end
22
+
23
+ when :post
24
+ response = @conn.post do |req|
25
+ req.url "/api/v2/#{@api_url}.json"
26
+ req.headers['Content-Type'] = 'application/json'
27
+ req.headers['Authorization'] = "Token token=#{Arcticelvis.api_key}"
28
+ req.body = @data.to_json
29
+ end
30
+ end
31
+
32
+ if response.body.to_s.include? 'Access denied'
33
+ raise Arcticelvis::AuthenticationError.new("Invalid credentials, is your API KEY correct?")
34
+ else
35
+ result = JSON.parse(response.body)
36
+ if result["error"] && result["error"]["id"] == 4001
37
+ raise Arcticelvis::AuthenticationError.new("Invalid API KEY")
38
+ end
39
+ end
40
+
41
+ return result, response.status.to_i
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,3 @@
1
+ module Arcticelvis
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Arcticelvis do
4
+ it "should have a version" do
5
+ Arcticelvis::VERSION.should eq "0.0.1"
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe ".api_key" do
4
+ it "should have a key" do
5
+ Arcticelvis.api_key.should eq Arcticelvis::Configuration::DEFAULT_API_KEY
6
+ end
7
+ end
8
+
9
+ describe '.configure' do
10
+ it "should set the api_key" do
11
+ Arcticelvis.configure do |config|
12
+ config.api_key = "123"
13
+ Arcticelvis.api_key.should eq "123"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe Arcticelvis::EventMessage do
4
+ before do
5
+ Arcticelvis.configure do |config|
6
+ config.api_key = 'cd242fb288ddf6e501decb92b84ac0a4'
7
+ end
8
+ end
9
+
10
+ describe "preview" do
11
+ describe "failure" do
12
+ it "raises record not found exception if the event message is not found" do
13
+ VCR.use_cassette('event_message_preview_404') do
14
+ event_message = Arcticelvis::EventMessage.new({id: "2", event_id: "1"})
15
+ expect { event_message.preview }.to raise_exception Arcticelvis::RecordNotFoundError
16
+ end
17
+ end
18
+ end
19
+
20
+ describe "success" do
21
+ it "should render the payload in the event message and return a preview" do
22
+ VCR.use_cassette('event_message_preview_200') do
23
+ event_message = Arcticelvis::EventMessage.new({id: "235", event_id: "177"})
24
+ event_message.preview({payload: {name: 'Surly you have a name mister!'}}).should include "Surly you have a name mister!"
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ describe Arcticelvis::Event do
4
+ before do
5
+ Arcticelvis.configure do |config|
6
+ config.api_key = 'abc'
7
+ end
8
+ end
9
+
10
+
11
+ describe ".find" do
12
+
13
+ describe "failure" do
14
+ it "should raise RecordNotFoundError when no event is found" do
15
+ VCR.use_cassette('event_404') do
16
+ expect {Arcticelvis::Event.find("123")}.to raise_exception Arcticelvis::RecordNotFoundError
17
+ end
18
+ end
19
+ end
20
+
21
+ describe "success" do
22
+ around(:each) do |example|
23
+ VCR.use_cassette('event_200') do
24
+ example.run
25
+ end
26
+ end
27
+
28
+ it "makes a GET request to the api-endpoint to fetch a specific event" do
29
+ event = Arcticelvis::Event.find("177")
30
+ event.should be_a(Arcticelvis::Event)
31
+ event.name.should eq "New user"
32
+ end
33
+
34
+ it "gives you an array of event messages" do
35
+ event = Arcticelvis::Event.find("177")
36
+ event.event_messages[0].should be_a(Arcticelvis::EventMessage)
37
+ event.event_messages[0].subject.should eq "Welcome"
38
+ end
39
+ end
40
+
41
+ end
42
+ describe ".trigger" do
43
+ describe "failure" do
44
+ end
45
+
46
+ describe "success" do
47
+ around(:each) do |example|
48
+ VCR.use_cassette('event_trigger_success') do
49
+ example.run
50
+ end
51
+ end
52
+
53
+ it "makes a POST request to the api-endpoint to trigger an event and loads the event" do
54
+ event = Arcticelvis::Event.new(id: '177')
55
+
56
+ expect{
57
+ event.trigger({
58
+ to: 'ch@skalar.no',
59
+ payload: {
60
+ name: "Arctic"
61
+ }
62
+ })
63
+ }.to change{
64
+ event.name
65
+ }.from(nil).to("New user")
66
+ end
67
+ end
68
+
69
+ describe "failure" do
70
+ it "raises exception if the event is not found" do
71
+ VCR.use_cassette('event_trigger_404') do
72
+ event = Arcticelvis::Event.new(id: '1')
73
+
74
+ expect{
75
+ event.trigger({
76
+ to: 'ch@skalar.no',
77
+ payload: {
78
+ name: "Arctic"
79
+ }
80
+ })
81
+ }.to raise_exception Arcticelvis::RecordNotFoundError
82
+
83
+ end
84
+ end
85
+
86
+ it "raises exception if the event is paused" do
87
+ end
88
+ end
89
+
90
+ end
91
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe Arcticelvis::Request do
4
+
5
+ describe "failure" do
6
+ it "should raise ArcticElvis::AuthenticationError if invalid key" do
7
+ VCR.use_cassette('request_4001') do
8
+ expect{
9
+ Arcticelvis::Request.new(:post, "/events/1/trigger", {}).perform
10
+ }.to raise_exception Arcticelvis::AuthenticationError
11
+ end
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,52 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.arcticelvis.com/api/v2/events/177.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Cache-Control:
26
+ - must-revalidate, private, max-age=0
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 20:18:58 GMT
31
+ Etag:
32
+ - '"c186ce12ec597392a98351e0dad5f986"'
33
+ Status:
34
+ - 200 OK
35
+ X-Rack-Cache:
36
+ - miss
37
+ X-Request-Id:
38
+ - 6ec52c04895889ab6d3de191e7b98e82
39
+ X-Runtime:
40
+ - '0.422020'
41
+ X-Ua-Compatible:
42
+ - IE=Edge,chrome=1
43
+ Transfer-Encoding:
44
+ - chunked
45
+ Connection:
46
+ - keep-alive
47
+ body:
48
+ encoding: UTF-8
49
+ string: '{"event":{"id":177,"name":"New user","state":"active","created_at":"2014-01-08T18:59:15Z","updated_at":"2014-01-08T19:00:11Z","event_messages":[{"id":235,"subject":"Welcome","created_at":"2014-01-08T19:00:02Z","updated_at":"2014-01-08T19:00:18Z","state":"active","preview":false}]}}'
50
+ http_version:
51
+ recorded_at: Wed, 08 Jan 2014 20:18:58 GMT
52
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.arcticelvis.com/api/v2/events/123.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache, private
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 20:15:49 GMT
31
+ Status:
32
+ - 404 Not Found
33
+ X-Rack-Cache:
34
+ - miss
35
+ X-Request-Id:
36
+ - cf64b768a923e64b1bc27e98d4cde404
37
+ X-Runtime:
38
+ - '0.012949'
39
+ X-Ua-Compatible:
40
+ - IE=Edge,chrome=1
41
+ Transfer-Encoding:
42
+ - chunked
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"error":{"id":404,"message":"Could not find event with id 123"}}'
48
+ http_version:
49
+ recorded_at: Wed, 08 Jan 2014 20:15:49 GMT
50
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,170 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.arcticelvis.com/api/v2/events/177/event_messages/235/preview.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"payload":{"name":"Surly you have a name mister!"}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Cache-Control:
26
+ - max-age=0, private, must-revalidate
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 21:39:56 GMT
31
+ Etag:
32
+ - '"3c093cb355b77b5ce74223dafad4ef78"'
33
+ Location:
34
+ - /api/v2/events.177
35
+ Status:
36
+ - 201 Created
37
+ X-Rack-Cache:
38
+ - invalidate, pass
39
+ X-Request-Id:
40
+ - 0bf86190274968c1af80bfd5465f083d
41
+ X-Runtime:
42
+ - '0.291256'
43
+ X-Ua-Compatible:
44
+ - IE=Edge,chrome=1
45
+ Transfer-Encoding:
46
+ - chunked
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"event_message":{"id":235,"subject":"Welcome","created_at":"2014-01-08T19:00:02Z","updated_at":"2014-01-08T20:50:54Z","state":"active","preview":"<!DOCTYPE
52
+ HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n <html>\n <head>\n <meta
53
+ http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\n <meta
54
+ name=\"viewport\" content=\"width=device-width\" />\n <meta charset=\"utf-8\">\n <title></title>\n </head>\n <body>\n <style
55
+ type=\"text/css\">\n /* Client-specific Styles */\n #outlook
56
+ a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link.
57
+ */\n body{width:100% !important; -webkit-text-size-adjust:100%;
58
+ -ms-text-size-adjust:100%; margin:0; padding:0;} \n /* Prevent
59
+ Webkit and Windows Mobile platforms from changing default font sizes.*/ \n .ExternalClass
60
+ {width:100%;} /* Force Hotmail to display emails at full width */ \n .ExternalClass,
61
+ .ExternalClass span, .ExternalClass td, .ExternalClass * {line-height: 100%;}\n /*
62
+ Forces Hotmail to display normal line spacing. More on that: http://www.emailonacid.com/forum/viewthread/43/
63
+ */ \n #backgroundTable {margin:0; padding:0; width:100% !important;
64
+ line-height: 100% !important;}\n /* End reset */\n /*
65
+ Some sensible defaults for images, Bring inline: Yes. */\n img
66
+ {outline:none; text-decoration:none; -ms-interpolation-mode: bicubic;} \n a
67
+ img {border:none;} \n .image_fix {display:block;}\n /*
68
+ Outlook 07, 10 Padding issue fix, Bring inline: No.*/\n table td
69
+ {border-collapse: collapse;}\n @media only screen and (max-width:
70
+ 620px) {\n .inner-wrapper{width: 320px;}\n .collaps-on-phone,
71
+ td.collaps-on-phone{width: 0px; height: 0px; display:none;}\n }\n @-webkit-viewport{width:device-width}\n @-moz-viewport{width:device-width}\n @-ms-viewport{width:device-width}\n @-o-viewport{width:device-width}\n @viewport{width:device-width}\n\n </style>\n <style
72
+ type=\"text/css\">table#nl_background {font-family:Arial, Helvetica, sans-serif;
73
+ font-size:12px; margin:0px;background:#e7e8e8;}\r\ntable#nl_content {font-family:Arial,
74
+ Helvetica, sans-serif; font-size:12px; margin:0px;background:#fff;}\r\nh1
75
+ { !important; margin: 0px; font-weight: normal; font-size: 26px; line-height:26px;
76
+ font-family: arial,verdana,helvetica; color:#000000;text-decoration:none;}\r\nh2
77
+ { !important; margin: 0px; font-weight: normal; font-size: 20px; line-height:20px;
78
+ font-family: arial,verdana,helvetica; color:#000000;text-decoration:none;}\r\nh3
79
+ { !important; margin: 0px; font-weight: normal; font-size: 18px; line-height:20px;
80
+ font-family: arial,verdana,helvetica; color:#000000;text-decoration:none;}\r\nh4
81
+ { !important; margin: 0px; font-weight: normal; font-size: 18px; line-height:20px;
82
+ font-family: arial,verdana,helvetica; color:#000000;text-decoration:none;}\r\nh1
83
+ a, h2 a, h3 a, h4 a{color:#000000;text-decoration:none;}\r\np, div { font-size:
84
+ 12px; line-height: 16px; font-family: arial,verdana,helvetica; color: #555;
85
+ margin: 0px; }\r\n.divP { font-size: 12px; line-height: 16px; font-family:
86
+ arial,verdana,helvetica; color: #555; margin: 0px; }\r\na { color: #0caad1;
87
+ text-decoration: none; }\r\n.signature{ font-weight:bold; color: #999999;}\r\n.easy{color:#999999;}\r\nimg
88
+ {display:block;}\r\n.headerFullBanner{width:600px;}\r\n.headerPaddedbanner{width:540px;}\r\n.imgBanner{width:540px;}\r\n.imgLeft{width:260px;}\r\n.imgRight{width:260px;}\r\n.imgDouble{width:260px;}\r\n.imgTriple{width:170px;}\r\n.imgCart{max-width:122px;}</style><!--Elvis
89
+ 3.0 Framework-->\n<!--Background Table-->\n<table width=\"100%\" cellspacing=\"0\"
90
+ cellpadding=\"0\" border=\"0\" align=\"center\" id=\"nl_background\" style=\"background:
91
+ #ffffff;font-family:Arial, Helvetica, sans-serif;font-size:12px;margin:0px;\"><tbody><tr>\n<td>
92
+ \n \t<!--email container-->\n <table cellspacing=\"0\" cellpadding=\"0\"
93
+ border=\"0\" align=\"center\" width=\"600\"><tbody>\n<tr>\n<td width=\"600\">\n <!--Pre
94
+ header-->\n <table cellspacing=\"0\" cellpadding=\"0\"
95
+ border=\"0\" width=\"600\" id=\"nl_outerheader\"><tbody><tr>\n<td valign=\"middle\"
96
+ width=\"400\" align=\"left\" height=\"30\">\n <div
97
+ class=\"editable\" style=\"font-size: 12px; line-height: 16px; font-family:
98
+ arial,verdana,helvetica; color: #555; margin: 0px;\">\n<p style=\"font-size:
99
+ 12px; line-height: 16px; font-family: arial,verdana,helvetica; color: #555;
100
+ margin: 0px;\">Arct</p>\n</div>\n </td>\n <td
101
+ valign=\"middle\" width=\"200\" align=\"right\" height=\"30\">\n \t<p
102
+ style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
103
+ color: #555; margin: 0px;\"><a href=\"\" class=\"text_only show_online_link\"
104
+ style=\"color: #2890ab;text-decoration:none;\">View in browser</a></p>\n </td>\n </tr></tbody></table>\n<!--End
105
+ pre header-->\n</td>\n </tr>\n<tr>\n<td width=\"600\"> \n <!--content
106
+ container-->\n <table cellspacing=\"0\" cellpadding=\"0\"
107
+ border=\"0\" width=\"600\" bgcolor=\"#FFFFFF\" id=\"nl_content\" style=\"background:
108
+ #2890ab;font-family:Arial, Helvetica, sans-serif;font-size:12px;margin:0px;\"><tbody>\n<tr>\n<td
109
+ width=\"600\">\n \t<!--Header-->\n \t<table
110
+ cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"600\" id=\"header\"><tbody
111
+ class=\"nl_column nl_header_column\" default_articles=\"banner\"><tr class=\"nl_row\"><td
112
+ class=\"nl_cell\" cid=\"c79\" title=\"\">\n<a href=\"http://www.arcticelvis.no\"
113
+ class=\"nl_wrapped_link image_wrap\" ae_link_id=\"67601\" style=\"color: #eccf04;text-decoration:none;\"><img
114
+ src=\"http://res.cloudinary.com/arcticelvis/image/upload/c_scale,w_600/v1351192682/xqqdk00lzpethjmfq9t2.jpg\"
115
+ class=\"headerFullBanner\" alt=\"Rorbu Confessions\" width=\"600\" height=\"326\"
116
+ style=\"display: block;width:600px;\"></a><table width=\"600\" cellspacing=\"0\"
117
+ cellpadding=\"0\" border=\"0\"><tbody>\n<tr></tr>\n<tr>\n<td width=\"600\"
118
+ height=\"30\"></td>\n\t</tr>\n</tbody></table>\n</td></tr></tbody></table>\n<!--End
119
+ header-->\n</td>\n </tr>\n<tr>\n<td width=\"600\">\n \t<table
120
+ width=\"600\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody><tr>\n<td
121
+ width=\"30\"></td>\n <td width=\"540\">\n \t<table
122
+ cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"540\"><tbody class=\"nl_column
123
+ nl_article_column\" default_articles=\"article triple_article_with_images\"><tr
124
+ class=\"nl_row\" style=\"\"><td class=\"nl_cell\" cid=\"c80\" title=\"\"><table
125
+ width=\"100%\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\"><tbody>\n<tr>\n<td
126
+ width=\"100%\" valign=\"top\" align=\"left\">\n \t<div class=\"editable\"
127
+ style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
128
+ color: #555; margin: 0px;\"><p style=\"color: #ffffff;font-size:12px;line-height:16px;font-family:arial,verdana,helvetica;margin:0px;\">Welcome
129
+ Surly you have a name mister!!<br><br>You are now a very special person!</p></div>\n </td>\n </tr>\n<tr><td
130
+ width=\"100%\" class=\"nl_space\" height=\"40\"></td></tr>\n</tbody></table></td></tr></tbody></table>\n</td>\n <td
131
+ width=\"30\"></td>\n \t</tr></tbody></table>\n</td>\n </tr>\n<tr>\n<td
132
+ width=\"600\">\n \t<!--Footer-->\n \t<!--Header-->\n \t<table
133
+ cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"600\" id=\"footer\"><tbody
134
+ class=\"nl_column nl_footer_column\" default_articles=\"semi_advanced\"></tbody></table>\n<!--End
135
+ header--><!--End footer-->\n</td>\n </tr>\n</tbody></table>\n<!--End
136
+ content container-->\n</td>\n \t</tr>\n<tr>\n<td width=\"600\">\n <!--Outer
137
+ footer--> \n <table cellspacing=\"0\" cellpadding=\"0\"
138
+ border=\"0\" width=\"600\" id=\"nl_outerfooter\"><tbody>\n<tr>\n<td width=\"600\"
139
+ height=\"15\"></td>\n </tr>\n<tr>\n<td width=\"600\"
140
+ align=\"center\" height=\"30\" valign=\"middle\">\n \t<p
141
+ style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
142
+ color: #555; margin: 0px;\"><a href=\"\" class=\"text_only unsubscribe_link\"
143
+ style=\"color: #2890ab;text-decoration:none;\">Unsubscribe from this newsletter</a></p>\n </td>\n </tr>\n<tr>\n<td
144
+ width=\"600\" height=\"5\"></td>\n </tr>\n<tr>\n<td
145
+ width=\"600\" align=\"center\">\n \t<div class=\"easy
146
+ editable\" style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
147
+ color: #555; margin: 0px;\"><p style=\"font-size: 12px; line-height: 16px;
148
+ font-family: arial,verdana,helvetica; color: #555; margin: 0px;\">This newsletter
149
+ is sent to you because you signed up to our mailinglist last christmas.</p></div>\n </td>\n </tr>\n<tr></tr>\n<tr>\n<td
150
+ width=\"600\" height=\"5\"></td>\n </tr>\n<tr>\n<td
151
+ width=\"600\" align=\"center\">\n\n\t\t\t\t\t\t\t\t\t\t\n \t<p
152
+ class=\"signature uneditable\" style=\"font-size: 12px; line-height: 16px;
153
+ font-family: arial,verdana,helvetica; color: #555; margin: 0px;font-weight:bold;\">\n\t\t\t\t\t\t\t\t\t\t</p>\n<p
154
+ style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
155
+ color: #555; margin: 0px;\">\n\t\t\t\t\t\t\t\t\t\t<a class=\"aehts\" rel=\"sys\"
156
+ href=\"http://www.arcticelvis.com?source=nl_snesquatter56\" style=\"color:
157
+ #2890ab;text-decoration:none;\">Powered by ArcticElvis</a>\n\t\t\t\t\t\t\t\t\t\t</p>\n \t\t<p
158
+ class=\"easy\" style=\"font-size: 12px; line-height: 16px; font-family: arial,verdana,helvetica;
159
+ color: #555; margin: 0px;\"></p>\n<div class=\"editable\" style=\"font-size:
160
+ 12px; line-height: 16px; font-family: arial,verdana,helvetica; color: #555;
161
+ margin: 0px;\">Global king of simple newsletters.</div>\n<p style=\"font-size:
162
+ 12px; line-height: 16px; font-family: arial,verdana,helvetica; color: #555;
163
+ margin: 0px;\"></p>\n\t\t\t\t\t\t\t\t\t<p style=\"font-size: 12px; line-height:
164
+ 16px; font-family: arial,verdana,helvetica; color: #555; margin: 0px;\"></p>\n </td>\n </tr>\n<tr>\n<td
165
+ width=\"600\" height=\"30\"></td>\n </tr>\n</tbody></table>\n<!--End
166
+ outer footer -->\n</td>\n </tr>\n<tr>\n<td width=\"600\" height=\"30\"></td>\n </tr>\n</tbody></table>\n</td>\n </tr></tbody></table><!--End
167
+ Background Table--></body>\n </html>"}}'
168
+ http_version:
169
+ recorded_at: Wed, 08 Jan 2014 21:39:56 GMT
170
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.arcticelvis.com/api/v2/events/1/event_messages/2/preview.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 21:29:15 GMT
31
+ Status:
32
+ - 404 Not Found
33
+ X-Rack-Cache:
34
+ - invalidate, pass
35
+ X-Request-Id:
36
+ - 4b7d04388d16f356d9b82acedaad77d6
37
+ X-Runtime:
38
+ - '0.114215'
39
+ X-Ua-Compatible:
40
+ - IE=Edge,chrome=1
41
+ Transfer-Encoding:
42
+ - chunked
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"error":{"id":404,"message":"Could not find event with id 1"}}'
48
+ http_version:
49
+ recorded_at: Wed, 08 Jan 2014 21:29:15 GMT
50
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.arcticelvis.com/api/v2/events/1/trigger.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"to":"ch@skalar.no","payload":{"name":"Arctic"}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 404
23
+ message: Not Found
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 21:08:36 GMT
31
+ Status:
32
+ - 404 Not Found
33
+ X-Rack-Cache:
34
+ - invalidate, pass
35
+ X-Request-Id:
36
+ - 416da34c22fa6e67cfcd411732c66506
37
+ X-Runtime:
38
+ - '0.133511'
39
+ X-Ua-Compatible:
40
+ - IE=Edge,chrome=1
41
+ Transfer-Encoding:
42
+ - chunked
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"error":{"id":404,"message":"Could not find event with id 1"}}'
48
+ http_version:
49
+ recorded_at: Wed, 08 Jan 2014 21:08:36 GMT
50
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,56 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.arcticelvis.com/api/v2/events/177/trigger.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{"to":"ch@skalar.no","payload":{"name":"Arctic"}}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=cd242fb288ddf6e501decb92b84ac0a4
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 201
23
+ message: Created
24
+ headers:
25
+ Cache-Control:
26
+ - max-age=0, private, must-revalidate
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 20:50:51 GMT
31
+ Etag:
32
+ - '"cf914ee433791f30ea4a9685d6baab2d"'
33
+ Location:
34
+ - /api/v2/events.177
35
+ Status:
36
+ - 201 Created
37
+ X-Rack-Cache:
38
+ - invalidate, pass
39
+ X-Request-Id:
40
+ - c0e73b03db097fd334290bb286e88646
41
+ X-Runtime:
42
+ - '0.225595'
43
+ X-Ua-Compatible:
44
+ - IE=Edge,chrome=1
45
+ Transfer-Encoding:
46
+ - chunked
47
+ Connection:
48
+ - keep-alive
49
+ body:
50
+ encoding: UTF-8
51
+ string: '{"event_instance":{"subscriber":{"id":202009,"email":"ch@skalar.no","first_name":"Christian","last_name":"","unsubscribed":false,"bounced":false,"tracked":true,"created_at":"2013-06-15T10:23:49Z","data":{},"lists":[{"id":616,"name":"All","created_at":"2013-12-17T01:32:32Z","subscriber_count":83},{"id":432,"name":"Skalar
52
+ AS","created_at":"2013-06-15T10:17:01Z","subscriber_count":15}]},"event":{"id":177,"name":"New
53
+ user","state":"active","created_at":"2014-01-08T18:59:15Z","updated_at":"2014-01-08T19:00:11Z","event_messages":[{"id":235,"subject":"Welcome","created_at":"2014-01-08T19:00:02Z","updated_at":"2014-01-08T20:39:14Z","state":"active","preview":false}]}}}'
54
+ http_version:
55
+ recorded_at: Wed, 08 Jan 2014 20:50:51 GMT
56
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,50 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.arcticelvis.com/api/v2/events/1/trigger.json
6
+ body:
7
+ encoding: UTF-8
8
+ string: '{}'
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.8.8
12
+ Content-Type:
13
+ - application/json
14
+ Authorization:
15
+ - Token token=abc
16
+ Accept-Encoding:
17
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
18
+ Accept:
19
+ - '*/*'
20
+ response:
21
+ status:
22
+ code: 401
23
+ message: Unauthorized
24
+ headers:
25
+ Cache-Control:
26
+ - no-cache
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Date:
30
+ - Wed, 08 Jan 2014 21:42:59 GMT
31
+ Status:
32
+ - 401 Unauthorized
33
+ X-Rack-Cache:
34
+ - invalidate, pass
35
+ X-Request-Id:
36
+ - 2c492e7c254d13d676711e1e0bc6d996
37
+ X-Runtime:
38
+ - '0.108615'
39
+ X-Ua-Compatible:
40
+ - IE=Edge,chrome=1
41
+ Transfer-Encoding:
42
+ - chunked
43
+ Connection:
44
+ - keep-alive
45
+ body:
46
+ encoding: UTF-8
47
+ string: '{"error":{"id":4001,"message":"Public access token is invalid"}}'
48
+ http_version:
49
+ recorded_at: Wed, 08 Jan 2014 21:43:00 GMT
50
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,12 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+
4
+ require 'arcticelvis'
5
+ require 'vcr'
6
+
7
+ RSpec.configure do |config|
8
+ VCR.configure do |c|
9
+ c.cassette_library_dir = 'spec/fixtures/vcr_cassettes'
10
+ c.hook_into :webmock # or :fakeweb
11
+ end
12
+ end
metadata ADDED
@@ -0,0 +1,198 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: arcticelvis
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Christian Hager
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-01-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.8
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.8
27
+ - !ruby/object:Gem::Dependency
28
+ name: json
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.1
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.8.1
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.5'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: vcr
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 2.8.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 2.8.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: webmock
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description: ArcticElvis will help you get more fish, aka sell more. This is a fishing
126
+ pole.
127
+ email:
128
+ - persson.hager@gmail.com
129
+ executables: []
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - Gemfile
135
+ - Guardfile
136
+ - LICENSE.txt
137
+ - README.md
138
+ - Rakefile
139
+ - arcticelvis.gemspec
140
+ - lib/arcticelvis.rb
141
+ - lib/arcticelvis/base.rb
142
+ - lib/arcticelvis/configuration.rb
143
+ - lib/arcticelvis/event.rb
144
+ - lib/arcticelvis/event_message.rb
145
+ - lib/arcticelvis/request.rb
146
+ - lib/arcticelvis/version.rb
147
+ - spec/arcticelvis/arcticelvis_spec.rb
148
+ - spec/arcticelvis/configuration_spec.rb
149
+ - spec/arcticelvis/event_message_spec.rb
150
+ - spec/arcticelvis/event_spec.rb
151
+ - spec/arcticelvis/request_spec.rb
152
+ - spec/fixtures/vcr_cassettes/event_200.yml
153
+ - spec/fixtures/vcr_cassettes/event_404.yml
154
+ - spec/fixtures/vcr_cassettes/event_message_preview_200.yml
155
+ - spec/fixtures/vcr_cassettes/event_message_preview_404.yml
156
+ - spec/fixtures/vcr_cassettes/event_trigger_404.yml
157
+ - spec/fixtures/vcr_cassettes/event_trigger_success.yml
158
+ - spec/fixtures/vcr_cassettes/request_4001.yml
159
+ - spec/spec_helper.rb
160
+ homepage: https://github.com/arcticelvis/arcticelvis-ruby
161
+ licenses:
162
+ - MIT
163
+ metadata: {}
164
+ post_install_message:
165
+ rdoc_options: []
166
+ require_paths:
167
+ - lib
168
+ required_ruby_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ required_rubygems_version: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ requirements: []
179
+ rubyforge_project:
180
+ rubygems_version: 2.0.14
181
+ signing_key:
182
+ specification_version: 4
183
+ summary: A client for the ArcticElvis API
184
+ test_files:
185
+ - spec/arcticelvis/arcticelvis_spec.rb
186
+ - spec/arcticelvis/configuration_spec.rb
187
+ - spec/arcticelvis/event_message_spec.rb
188
+ - spec/arcticelvis/event_spec.rb
189
+ - spec/arcticelvis/request_spec.rb
190
+ - spec/fixtures/vcr_cassettes/event_200.yml
191
+ - spec/fixtures/vcr_cassettes/event_404.yml
192
+ - spec/fixtures/vcr_cassettes/event_message_preview_200.yml
193
+ - spec/fixtures/vcr_cassettes/event_message_preview_404.yml
194
+ - spec/fixtures/vcr_cassettes/event_trigger_404.yml
195
+ - spec/fixtures/vcr_cassettes/event_trigger_success.yml
196
+ - spec/fixtures/vcr_cassettes/request_4001.yml
197
+ - spec/spec_helper.rb
198
+ has_rdoc: