user_engage 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7b28a4f60cd046d361e3b68dea4fff6d741d740a
4
- data.tar.gz: 5fe4a8fb47beeeea1ba1ef971901eb26c78151c6
3
+ metadata.gz: 18d99b1ccd39a659cb6733181ebf2ae75c6739e8
4
+ data.tar.gz: 04021ad99abf006227beebd175be14235e0861f7
5
5
  SHA512:
6
- metadata.gz: f16cdba1633b10b62c72460dcbcc53cb224227368406ae8eb65407177cbcb82446d4afad68b5c7e60707d5ccde927c87310d32364fd258c3b97784ae56a3f41d
7
- data.tar.gz: 3da93815f6947221a767205bb2698bb13aeacc8678d47a1e3f03a07d86cf0e7412bc63e56c240e486cac0e72f0c77a003b942138a117ea75993a7f226d514254
6
+ metadata.gz: 7f140559b269a4d0f20ee217eddfc9ea3551026f55f9f9634b6f20f1233c51ba276912cbc98b06cebc082ba7f8cbda03f7de22909eb3d2d330c2a6ae3e14fcd5
7
+ data.tar.gz: 369dcedfd288b570d2836faadac8caf1f1e3ca2d8033440095d5bf40609eac77eeee2ff7d651c3b664eeeef334194a6dbeaf824d31d2333daf4ed288691b6688
data/.gitignore CHANGED
@@ -7,5 +7,7 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
 
10
+ .env
11
+
10
12
  # rspec failure tracking
11
13
  .rspec_status
data/.rubocop.yml ADDED
@@ -0,0 +1,12 @@
1
+ Style/Documentation:
2
+ Enabled: false
3
+
4
+ Style/CommentedKeyword:
5
+ Enabled: false
6
+
7
+ Style/NumericLiterals:
8
+ Enabled: false
9
+
10
+ Metrics/BlockLength:
11
+ Exclude:
12
+ - 'spec/**/*'
data/.travis.yml CHANGED
@@ -2,4 +2,9 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.4.2
5
- before_install: gem install bundler -v 1.16.1
5
+ before_install:
6
+ - gem install bundler -v 1.16.1
7
+ - bin/setup
8
+ script:
9
+ - bundle exec rubocop .
10
+ - bundle exec rake
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in user_engage.gemspec
6
6
  gemspec
data/Gemfile.lock CHANGED
@@ -1,12 +1,58 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- user_engage (0.0.1)
4
+ user_engage (0.0.2)
5
+ dry-struct (~> 0.4)
6
+ faraday (~> 0.14)
5
7
 
6
8
  GEM
7
9
  remote: https://rubygems.org/
8
10
  specs:
11
+ addressable (2.5.2)
12
+ public_suffix (>= 2.0.2, < 4.0)
13
+ ast (2.4.0)
14
+ concurrent-ruby (1.0.5)
15
+ crack (0.4.3)
16
+ safe_yaml (~> 1.0.0)
9
17
  diff-lcs (1.3)
18
+ dotenv (2.2.1)
19
+ dry-configurable (0.7.0)
20
+ concurrent-ruby (~> 1.0)
21
+ dry-container (0.6.0)
22
+ concurrent-ruby (~> 1.0)
23
+ dry-configurable (~> 0.1, >= 0.1.3)
24
+ dry-core (0.4.3)
25
+ concurrent-ruby (~> 1.0)
26
+ dry-equalizer (0.2.0)
27
+ dry-logic (0.4.2)
28
+ dry-container (~> 0.2, >= 0.2.6)
29
+ dry-core (~> 0.2)
30
+ dry-equalizer (~> 0.2)
31
+ dry-struct (0.4.0)
32
+ dry-core (~> 0.4, >= 0.4.1)
33
+ dry-equalizer (~> 0.2)
34
+ dry-types (~> 0.12, >= 0.12.2)
35
+ ice_nine (~> 0.11)
36
+ dry-types (0.12.2)
37
+ concurrent-ruby (~> 1.0)
38
+ dry-configurable (~> 0.1)
39
+ dry-container (~> 0.3)
40
+ dry-core (~> 0.2, >= 0.2.1)
41
+ dry-equalizer (~> 0.2)
42
+ dry-logic (~> 0.4, >= 0.4.2)
43
+ inflecto (~> 0.0.0, >= 0.0.2)
44
+ faraday (0.14.0)
45
+ multipart-post (>= 1.2, < 3)
46
+ hashdiff (0.3.7)
47
+ ice_nine (0.11.2)
48
+ inflecto (0.0.2)
49
+ multipart-post (2.0.0)
50
+ parallel (1.12.1)
51
+ parser (2.4.0.2)
52
+ ast (~> 2.3)
53
+ powerpack (0.1.1)
54
+ public_suffix (3.0.1)
55
+ rainbow (3.0.0)
10
56
  rake (10.5.0)
11
57
  rspec (3.7.0)
12
58
  rspec-core (~> 3.7.0)
@@ -21,15 +67,34 @@ GEM
21
67
  diff-lcs (>= 1.2.0, < 2.0)
22
68
  rspec-support (~> 3.7.0)
23
69
  rspec-support (3.7.1)
70
+ rubocop (0.52.1)
71
+ parallel (~> 1.10)
72
+ parser (>= 2.4.0.2, < 3.0)
73
+ powerpack (~> 0.1)
74
+ rainbow (>= 2.2.2, < 4.0)
75
+ ruby-progressbar (~> 1.7)
76
+ unicode-display_width (~> 1.0, >= 1.0.1)
77
+ ruby-progressbar (1.9.0)
78
+ safe_yaml (1.0.4)
79
+ unicode-display_width (1.3.0)
80
+ vcr (4.0.0)
81
+ webmock (3.3.0)
82
+ addressable (>= 2.3.6)
83
+ crack (>= 0.3.2)
84
+ hashdiff
24
85
 
25
86
  PLATFORMS
26
87
  ruby
27
88
 
28
89
  DEPENDENCIES
29
90
  bundler (~> 1.16)
91
+ dotenv (~> 2.2)
30
92
  rake (~> 10.0)
31
93
  rspec (~> 3.0)
94
+ rubocop (~> 0.52)
32
95
  user_engage!
96
+ vcr (~> 4.0)
97
+ webmock (~> 3.3)
33
98
 
34
99
  BUNDLED WITH
35
100
  1.16.1
File without changes
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # UserEngage - NOT READY YET!
1
+ # UserEngage - NOT READY YET! [![Build Status](https://travis-ci.org/CompanyMood/user_engage-ruby.svg?branch=master)](https://travis-ci.org/CompanyMood/user_engage-ruby)
2
2
 
3
3
  This gem implements the ruby bindings for https://userengage.com.
4
4
 
@@ -37,6 +37,10 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
37
37
 
38
38
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
39
39
 
40
+ ## Open ToDos
41
+
42
+ See [our open todo list](https://github.com/CompanyMood/user_engage-ruby/blob/master/TODO.md)
43
+
40
44
  ## Contributing
41
45
 
42
46
  Bug reports and pull requests are welcome on GitHub at https://github.com/CompanyMood/user_engage-ruby. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
- task :default => :spec
6
+ task default: :spec
data/TODO.md ADDED
@@ -0,0 +1,129 @@
1
+ # Open ToDos:
2
+ ## Users
3
+ * [ ] Create user
4
+ * [ ] Update user
5
+ * [x] Find user by email
6
+ * [x] Find user by key
7
+ * [x] Find user by phone number
8
+ * [x] Find user by date
9
+ * [x] Delete user
10
+ * [ ] Filter users by custom attribute
11
+ * [ ] Get single user details
12
+ * [ ] Get all users details
13
+ * [ ] Get user segments
14
+ * [ ] Add tag
15
+ * [ ] Remove tag
16
+ * [ ] Add list
17
+ * [ ] Remove list
18
+ * [ ] Set attribute
19
+ * [ ] Set multiple attributes
20
+ * [ ] Remove attribute
21
+ * [ ] Get user ping hits
22
+ * [ ] Get user timeline
23
+ * [ ] Get user events
24
+ * [ ] Get user emails
25
+ ## Users - custom ID requests
26
+ * [ ] Update user
27
+ * [ ] Find user by ID
28
+ * [ ] Delete user
29
+ * [ ] Get single user details
30
+ * [ ] Get user segments
31
+ * [ ] Add tag
32
+ * [ ] Remove tag
33
+ * [ ] Add list
34
+ * [ ] Remove list
35
+ * [ ] Set attribute
36
+ * [ ] Set multiple attributes
37
+ * [ ] Remove attribute
38
+ * [ ] Get user ping hits
39
+ * [ ] Get user timeline
40
+ * [ ] Get user events
41
+ * [ ] Get user emails
42
+ ## CRM
43
+ * [ ] Create company
44
+ * [ ] Update company
45
+ * [ ] Delete company
46
+ * [ ] Get company
47
+ * [ ] Get all companies
48
+ * [ ] Set attribute
49
+ * [ ] Set multiple attributes
50
+ * [ ] Update company using company ID
51
+ * [ ] Delete company using company ID
52
+ * [ ] Get company using company ID
53
+ * [ ] Set attribute using company ID
54
+ * [ ] Set multiple attributes using company ID
55
+ * [ ] Create deal
56
+ * [ ] Update deal
57
+ * [ ] Get deal
58
+ * [ ] Get all deals
59
+ * [ ] Set attribute
60
+ * [ ] Set multiple attributes
61
+ * [ ] Create activity
62
+ * [ ] Update activity
63
+ * [ ] Get activity
64
+ * [ ] Get all activities
65
+ * [ ] Get all activity types
66
+ * [ ] Create pipeline
67
+ * [ ] Update pipeline
68
+ * [ ] Delete pipeline
69
+ * [ ] Get all pipelines
70
+ * [ ] Create stage
71
+ * [ ] Update stage
72
+ * [ ] Delete stage
73
+ * [ ] Get all stages
74
+ * [ ] Create deal loss reason
75
+ * [ ] Update deal loss reason
76
+ * [ ] Get deal loss reasons
77
+ ## Tags
78
+ * [ ] Create tag
79
+ * [ ] Update tag
80
+ * [ ] Delete tag
81
+ * [ ] Get all tags
82
+ ## Lists
83
+ * [ ] Create list
84
+ * [ ] Update list
85
+ * [ ] Delete list
86
+ * [ ] Get all lists
87
+ ## Attributes
88
+ * [ ] Create attribute
89
+ * [ ] Delete attribute
90
+ * [ ] Get single attribute
91
+ * [ ] Get all attributes
92
+ ##Events
93
+ * [ ] Create event
94
+ * [ ] Create event using user ID
95
+ * [ ] Get single event
96
+ * [ ] Get all events
97
+ ## Notes
98
+ * [ ] Create user note
99
+ * [ ] Update user note
100
+ * [ ] Get user notes
101
+ * [ ] Delete user note
102
+ * [ ] Create company note
103
+ * [ ] Update company note
104
+ * [ ] Get company notes
105
+ * [ ] Delete company note
106
+ * [ ] Create deal note
107
+ * [ ] Update deal note
108
+ * [ ] Get deal notes
109
+ * [ ] Delete deal note
110
+ ## Segments
111
+ * [ ] View segment users
112
+ * [ ] List all segments
113
+ ##Conversations
114
+ * [ ] Get single conversation
115
+ * [ ] Get single user conversations
116
+ * [ ] Get all conversations
117
+ * [ ] Create conversations
118
+ * [ ] Create message
119
+ * [ ] Attachments
120
+ * [ ] Webhooks
121
+ ## Emails
122
+ * [ ] Send an email
123
+ * [ ] Create email template
124
+ * [ ] Update email template
125
+ * [ ] Delete email template
126
+ * [ ] Get single email template
127
+ * [ ] Get all email templates
128
+ * [ ] Get single SMTP settings
129
+ * [ ] Get all SMTP settings
data/bin/console CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "bundler/setup"
4
- require "user_engage"
3
+ require 'bundler/setup'
4
+ require 'user_engage'
5
5
 
6
6
  # You can add fixtures and/or initialization code here to make experimenting
7
7
  # with your gem easier. You can also use a different console, if you like.
8
8
 
9
9
  # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
10
+ # require 'pry'
11
11
  # Pry.start
12
12
 
13
- require "irb"
13
+ require 'irb'
14
14
  IRB.start(__FILE__)
data/bin/setup CHANGED
@@ -4,5 +4,6 @@ IFS=$'\n\t'
4
4
  set -vx
5
5
 
6
6
  bundle install
7
+ echo "USERENGAGE_API_TOKEN='<your-api-key-here>'" > .env
7
8
 
8
- # Do any other automated setup that you need to do here
9
+ echo "Please replace USERENGAGE_API_TOKEN with your token in .env"
data/lib/user_engage.rb CHANGED
@@ -1,5 +1,6 @@
1
- require "user_engage/version"
2
- require "user_engage/configuration"
1
+ require 'user_engage/client'
2
+ require 'user_engage/configuration'
3
+ require 'user_engage/version'
3
4
 
4
5
  module UserEngage
5
6
  def self.configuration
@@ -9,4 +10,8 @@ module UserEngage
9
10
  def self.config
10
11
  yield(configuration)
11
12
  end
13
+
14
+ def self.client
15
+ Client.new(configuration)
16
+ end
12
17
  end
@@ -0,0 +1,14 @@
1
+ require 'user_engage/base_model'
2
+
3
+ module UserEngage
4
+ class Attribute < BaseModel
5
+ ################
6
+ ## Attributes ##
7
+ ################
8
+ attribute :description, Types::String
9
+ attribute :id, Types::Int
10
+ attribute :name_std, Types::String
11
+ attribute :name, Types::String
12
+ attribute :value, Types::Any
13
+ end
14
+ end
@@ -0,0 +1,11 @@
1
+ require 'dry-struct'
2
+
3
+ module UserEngage
4
+ class BaseModel < Dry::Struct
5
+ module Types
6
+ include Dry::Types.module
7
+ end
8
+
9
+ constructor_type :schema
10
+ end
11
+ end
@@ -1,12 +1,46 @@
1
+ require 'faraday'
2
+
1
3
  module UserEngage
2
4
  class Client
3
-
4
5
  ######################
5
6
  ## Instance methods ##
6
7
  ######################
8
+ def initialize(configuration)
9
+ @configuration = configuration
10
+ end
11
+
12
+ # Public: Calls the base_url with the given path and parameters
13
+ #
14
+ def get(path, parameters)
15
+ request(:get, path, parameters)
16
+ end
17
+
18
+ # Public: Calls the base_url with the given path and parameters
19
+ #
20
+ def delete(path)
21
+ request(:delete, path)
22
+ end
23
+
24
+ #####################
25
+ ## Private methods ##
26
+ #####################
27
+ private
28
+
29
+ def connection
30
+ Faraday.new(url: host)
31
+ end
32
+
33
+ def request(method, action_path, parameters = nil)
34
+ path = "api/public#{action_path}"
35
+ connection.public_send(method, path, parameters) do |request|
36
+ request.headers['Authorization'] = "Token #{@configuration.token}"
37
+ request.headers['Content-Type'] = 'application/json'
38
+ request.headers['User-Agent'] = "UserEngage-Ruby/#{UserEngage::VERSION}"
39
+ end
40
+ end
7
41
 
8
- def initialize(token)
9
- @token = token
42
+ def host
43
+ 'https://app.userengage.com/'.freeze
10
44
  end
11
45
  end
12
46
  end
@@ -0,0 +1,5 @@
1
+ module UserEngage
2
+ class InvalidFindAttributeException < StandardError; end
3
+ class ResourceNotFoundException < StandardError; end
4
+ class NotExistingResourceException < StandardError; end
5
+ end
@@ -0,0 +1,10 @@
1
+ require 'user_engage/base_model'
2
+
3
+ module UserEngage
4
+ class List < BaseModel
5
+ ################
6
+ ## Attributes ##
7
+ ################
8
+ attr_accessor :id, :name, :description
9
+ end
10
+ end
@@ -0,0 +1,30 @@
1
+ require 'user_engage/errors'
2
+
3
+ module UserEngage
4
+ module Operation
5
+ module Destroy
6
+ def destroy
7
+ destroy_resource
8
+ end
9
+
10
+ #####################
11
+ ## Private methods ##
12
+ #####################
13
+ private
14
+
15
+ def destroy_resource
16
+ path = "/#{self.class.resource_name}/#{id}/"
17
+ response = UserEngage.client.delete(path)
18
+ check_for_success!(response)
19
+ end
20
+
21
+ def check_for_success!(response)
22
+ return true if response.status == 204
23
+ raise(
24
+ UserEngage::NotExistingResourceException,
25
+ "No resource with ID: #{id} found!"
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,43 @@
1
+ require 'user_engage/errors'
2
+
3
+ module UserEngage
4
+ module Operation
5
+ module Find
6
+ def find(params = {})
7
+ check_for_unsupported_params!(params)
8
+ attributes = get_resource(params)
9
+ new(attributes)
10
+ end
11
+
12
+ #####################
13
+ ## Private methods ##
14
+ #####################
15
+ private
16
+
17
+ def get_resource(params)
18
+ path = "/#{resource_name}/search/"
19
+ response = UserEngage.client.get(path, params)
20
+ check_for_existing_resource!(response, params)
21
+ JSON.parse(response.body, symbolize_names: true)
22
+ end
23
+
24
+ def check_for_existing_resource!(response, params)
25
+ return if response.status == 200
26
+ raise(
27
+ UserEngage::ResourceNotFoundException,
28
+ "No resource with {#{params.inspect}} found!"
29
+ )
30
+ end
31
+
32
+ def check_for_unsupported_params!(params)
33
+ unsupported_params = params.keys - supported_find_params
34
+ return if unsupported_params.size.zero?
35
+
36
+ raise(
37
+ UserEngage::InvalidFindAttributeException,
38
+ "Unsupported parameter/s used: #{unsupported_params.join(', ')}"
39
+ )
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,10 @@
1
+ require 'user_engage/base_model'
2
+
3
+ module UserEngage
4
+ class Tag < BaseModel
5
+ ################
6
+ ## Attributes ##
7
+ ################
8
+ attr_accessor :id, :name
9
+ end
10
+ end
@@ -0,0 +1,69 @@
1
+ require 'user_engage/base_model'
2
+ require 'user_engage/operation/find'
3
+ require 'user_engage/operation/destroy'
4
+
5
+ require 'user_engage/attribute'
6
+ require 'user_engage/list'
7
+ require 'user_engage/tag'
8
+
9
+ module UserEngage
10
+ class User < BaseModel
11
+ ##############
12
+ ## Includes ##
13
+ ##############
14
+ extend Operation::Find
15
+ include Operation::Destroy
16
+
17
+ ################
18
+ ## Attributes ##
19
+ ################
20
+ attribute :attributes, Types::Array.of(UserEngage::Attribute)
21
+ attribute :browser, Types::String
22
+ attribute :browser_language, Types::String
23
+ attribute :chat_id, Types::Int
24
+ attribute :city, Types::String
25
+ attribute :country, Types::String
26
+ attribute :created_at, Types::DateTime
27
+ attribute :email, Types::String
28
+ attribute :facebook_url, Types::String
29
+ attribute :first_seen, Types::DateTime
30
+ attribute :gender, Types::String
31
+ attribute :google_url, Types::String
32
+ attribute :gravatar_url, Types::String
33
+ attribute :id, Types::Int
34
+ attribute :key, Types::String
35
+ attribute :last_contacted, Types::DateTime
36
+ attribute :last_ip, Types::String
37
+ attribute :last_seen, Types::DateTime
38
+ attribute :linkedin_url, Types::String
39
+ attribute :lists, Types::Array.of(UserEngage::List)
40
+ attribute :name, Types::String
41
+ attribute :notifications, Types::Bool
42
+ attribute :os_type, Types::String
43
+ attribute :page_views, Types::Int
44
+ attribute :phone_number, Types::String
45
+ attribute :region, Types::String
46
+ attribute :resolution, Types::String
47
+ attribute :score, Types::Int
48
+ attribute :status, Types::String
49
+ attribute :tags, Types::Array.of(UserEngage::Tag)
50
+ attribute :timezone, Types::String
51
+ attribute :twitter_url, Types::String
52
+ attribute :unsubscribed, Types::Bool
53
+ attribute :updated_at, Types::DateTime
54
+ attribute :user_id, Types::Any
55
+
56
+ #####################
57
+ ## Private methods ##
58
+ #####################
59
+ private_class_method
60
+
61
+ def self.supported_find_params
62
+ %i[email key phone_number date]
63
+ end
64
+
65
+ def self.resource_name
66
+ 'users'.freeze
67
+ end
68
+ end
69
+ end
@@ -1,3 +1,3 @@
1
1
  module UserEngage
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.2'.freeze
3
3
  end
data/user_engage.gemspec CHANGED
@@ -1,27 +1,36 @@
1
1
 
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "user_engage/version"
4
+ require 'user_engage/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "user_engage"
7
+ spec.name = 'user_engage'
8
8
  spec.version = UserEngage::VERSION
9
- spec.authors = ["Markus Schwed"]
10
- spec.email = ["markus@company-mood.com"]
9
+ spec.authors = ['Markus Schwed']
10
+ spec.email = ['markus@company-mood.com']
11
11
 
12
- spec.summary = %q{NOT READY YET!! - Ruby bindings for the UserEngage API}
13
- spec.description = %q{UserEngage (https://userengage.com) - Keep things simple with a single platform for all your messaging and relationships with customers.}
14
- spec.homepage = "https://github.com/CompanyMood/user_engage-ruby"
15
- spec.license = "MIT"
12
+ spec.summary = 'NOT READY YET!! - Ruby bindings for the UserEngage API'
13
+ spec.description = 'UserEngage (https://userengage.com) - '\
14
+ 'Keep things simple with a single platform '\
15
+ 'for all your messaging and relationships with customers.'
16
+ spec.homepage = 'https://github.com/CompanyMood/user_engage-ruby'
17
+ spec.license = 'MIT'
16
18
 
17
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
20
  f.match(%r{^(test|spec|features)/})
19
21
  end
20
- spec.bindir = "exe"
22
+ spec.bindir = 'exe'
21
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
24
+ spec.require_paths = ['lib']
23
25
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "rspec", "~> 3.0"
26
+ spec.add_runtime_dependency 'dry-struct', '~> 0.4'
27
+ spec.add_runtime_dependency 'faraday', '~> 0.14'
28
+
29
+ spec.add_development_dependency 'bundler', '~> 1.16'
30
+ spec.add_development_dependency 'dotenv', '~> 2.2'
31
+ spec.add_development_dependency 'rake', '~> 10.0'
32
+ spec.add_development_dependency 'rspec', '~> 3.0'
33
+ spec.add_development_dependency 'rubocop', '~> 0.52'
34
+ spec.add_development_dependency 'vcr', '~> 4.0'
35
+ spec.add_development_dependency 'webmock', '~> 3.3'
27
36
  end
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: user_engage
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schwed
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-02 00:00:00.000000000 Z
11
+ date: 2018-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: dry-struct
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '0.4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '0.4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0.14'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0.14'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: bundler
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +52,20 @@ dependencies:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
54
  version: '1.16'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dotenv
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.2'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.2'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: rake
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +94,48 @@ dependencies:
52
94
  - - "~>"
53
95
  - !ruby/object:Gem::Version
54
96
  version: '3.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rubocop
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.52'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '0.52'
111
+ - !ruby/object:Gem::Dependency
112
+ name: vcr
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '4.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '4.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: webmock
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '3.3'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '3.3'
55
139
  description: UserEngage (https://userengage.com) - Keep things simple with a single
56
140
  platform for all your messaging and relationships with customers.
57
141
  email:
@@ -62,18 +146,29 @@ extra_rdoc_files: []
62
146
  files:
63
147
  - ".gitignore"
64
148
  - ".rspec"
149
+ - ".rubocop.yml"
65
150
  - ".travis.yml"
66
151
  - CODE_OF_CONDUCT.md
67
152
  - Gemfile
68
153
  - Gemfile.lock
69
154
  - LICENSE.txt
155
+ - NetrwTreeListing 3
70
156
  - README.md
71
157
  - Rakefile
158
+ - TODO.md
72
159
  - bin/console
73
160
  - bin/setup
74
161
  - lib/user_engage.rb
162
+ - lib/user_engage/attribute.rb
163
+ - lib/user_engage/base_model.rb
75
164
  - lib/user_engage/client.rb
76
165
  - lib/user_engage/configuration.rb
166
+ - lib/user_engage/errors.rb
167
+ - lib/user_engage/list.rb
168
+ - lib/user_engage/operation/destroy.rb
169
+ - lib/user_engage/operation/find.rb
170
+ - lib/user_engage/tag.rb
171
+ - lib/user_engage/user.rb
77
172
  - lib/user_engage/version.rb
78
173
  - user_engage.gemspec
79
174
  homepage: https://github.com/CompanyMood/user_engage-ruby