evvnt 0.1.0
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 +7 -0
- data/.circleci/config.yml +65 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.rubocop.yml +61 -0
- data/Gemfile +6 -0
- data/Gemfile.lock +97 -0
- data/LICENSE.txt +21 -0
- data/README.md +88 -0
- data/Rakefile +2 -0
- data/bin/console +22 -0
- data/bin/setup +8 -0
- data/evvnt.gemspec +32 -0
- data/lib/evvnt/actions.rb +61 -0
- data/lib/evvnt/api.rb +108 -0
- data/lib/evvnt/api_error.rb +4 -0
- data/lib/evvnt/audience_reach.rb +4 -0
- data/lib/evvnt/base.rb +166 -0
- data/lib/evvnt/broadcast.rb +4 -0
- data/lib/evvnt/broadcast_result.rb +4 -0
- data/lib/evvnt/category.rb +17 -0
- data/lib/evvnt/class_template_methods.rb +101 -0
- data/lib/evvnt/clicks_by_day.rb +4 -0
- data/lib/evvnt/configuration.rb +54 -0
- data/lib/evvnt/contact.rb +4 -0
- data/lib/evvnt/contract.rb +18 -0
- data/lib/evvnt/event.rb +69 -0
- data/lib/evvnt/instance_template_methods.rb +17 -0
- data/lib/evvnt/link.rb +5 -0
- data/lib/evvnt/logging.rb +42 -0
- data/lib/evvnt/nested_resources.rb +66 -0
- data/lib/evvnt/package.rb +24 -0
- data/lib/evvnt/path_helpers.rb +114 -0
- data/lib/evvnt/persistence.rb +41 -0
- data/lib/evvnt/price.rb +5 -0
- data/lib/evvnt/published_event.rb +21 -0
- data/lib/evvnt/publisher.rb +11 -0
- data/lib/evvnt/referrer.rb +5 -0
- data/lib/evvnt/report.rb +58 -0
- data/lib/evvnt/search_indexing.rb +4 -0
- data/lib/evvnt/user.rb +24 -0
- data/lib/evvnt/venue.rb +4 -0
- data/lib/evvnt/version.rb +3 -0
- data/lib/evvnt.rb +46 -0
- metadata +255 -0
@@ -0,0 +1,114 @@
|
|
1
|
+
module Evvnt
|
2
|
+
# Internal: Helper methods defining API paths for the defined resources
|
3
|
+
module PathHelpers
|
4
|
+
##
|
5
|
+
# A regular expression to check for params in a URL String.
|
6
|
+
PARAM_REGEX = %r{\:[^\/$]+}
|
7
|
+
|
8
|
+
# Is this class defined as a singular resource?
|
9
|
+
#
|
10
|
+
# Returns Boolean
|
11
|
+
def singular_resource?
|
12
|
+
@singular_resource == true
|
13
|
+
end
|
14
|
+
|
15
|
+
# Declare this class as a singular resource
|
16
|
+
#
|
17
|
+
def singular_resource!
|
18
|
+
@singular_resource = true
|
19
|
+
resource_name(name.split("::").last.underscore.singularize)
|
20
|
+
end
|
21
|
+
|
22
|
+
# The name for this class's corresponding resource on the API.
|
23
|
+
#
|
24
|
+
# rename - A String representing the new resource_name.
|
25
|
+
#
|
26
|
+
def resource_name(rename = nil)
|
27
|
+
if rename
|
28
|
+
@resource_name = rename
|
29
|
+
else
|
30
|
+
@resource_name || default_resource_name
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Nest a given resource path within a parent resource.
|
35
|
+
#
|
36
|
+
# path - A String representing an API resource path.
|
37
|
+
# params - A Hash of params to send to the API.
|
38
|
+
#
|
39
|
+
# Examples
|
40
|
+
#
|
41
|
+
# nest_path_within_parent("bags/1", {user_id: "123"}) # => /users/123/bags/1
|
42
|
+
#
|
43
|
+
# Returns String
|
44
|
+
def nest_path_within_parent(path, params)
|
45
|
+
params.symbolize_keys!
|
46
|
+
parent_resource = parent_resource_name(params)
|
47
|
+
parent_id = params.delete(parent_resource_param(params)).try(:to_s)
|
48
|
+
File.join(*[parent_resource, parent_id, path].compact).to_s
|
49
|
+
end
|
50
|
+
|
51
|
+
# The API path for a single resource on the API
|
52
|
+
#
|
53
|
+
# Returns String
|
54
|
+
def singular_resource_path
|
55
|
+
if singular_resource?
|
56
|
+
resource_name
|
57
|
+
else
|
58
|
+
"#{resource_name}/:id"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# The default name of this resource on the API (e.g. "users")
|
63
|
+
#
|
64
|
+
# Returns String
|
65
|
+
def default_resource_name
|
66
|
+
name.split("::").last.underscore.pluralize
|
67
|
+
end
|
68
|
+
|
69
|
+
# The defined path of this resource on the API (e.g. "/users")
|
70
|
+
#
|
71
|
+
# new_path - A String with the new default value for the plural_resource_path
|
72
|
+
# block - A Proc object for defining dynamic resource_paths
|
73
|
+
#
|
74
|
+
# Returns String
|
75
|
+
# Returns Proc
|
76
|
+
def plural_resource_path(new_path = nil, &block)
|
77
|
+
if new_path || block_given?
|
78
|
+
@plural_resource_path = (new_path || block)
|
79
|
+
else
|
80
|
+
@plural_resource_path || default_resource_path
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
# The default path of this resource on the API (e.g. "/users")
|
85
|
+
#
|
86
|
+
# Returns String
|
87
|
+
def default_resource_path
|
88
|
+
resource_name
|
89
|
+
end
|
90
|
+
|
91
|
+
# Template method for fetching _mine_ records from the API.
|
92
|
+
#
|
93
|
+
# record_id - A String or Integer ID for the record we're fetching from the API.
|
94
|
+
# params - A Hash of parameters to send to the API.
|
95
|
+
#
|
96
|
+
# Returns String
|
97
|
+
def singular_path_for_record(record_id, params)
|
98
|
+
if singular_resource_path.respond_to?(:call)
|
99
|
+
path = singular_resource_path.call
|
100
|
+
path.match(PARAM_REGEX) do |segment|
|
101
|
+
value = params.delete(segment.to_s[1..-1])
|
102
|
+
path = path.gsub!(/#{segment}/, value.to_s)
|
103
|
+
end
|
104
|
+
else
|
105
|
+
path = singular_resource_path
|
106
|
+
end
|
107
|
+
path = path.gsub(/\:id/, record_id.to_s)
|
108
|
+
if params_include_parent_resource_id?(params)
|
109
|
+
path = nest_path_within_parent(path, params)
|
110
|
+
end
|
111
|
+
path
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Evvnt
|
2
|
+
# Provides methods for saving an individual record to the API
|
3
|
+
module Persistence
|
4
|
+
# Has this record been saved on the EVVNT API?
|
5
|
+
#
|
6
|
+
# Returns a Boolean
|
7
|
+
def persisted?
|
8
|
+
unique_identifier.present?
|
9
|
+
end
|
10
|
+
|
11
|
+
# Is this record an unsaved/fresh record?
|
12
|
+
#
|
13
|
+
# Returns a Boolean
|
14
|
+
def new_record?
|
15
|
+
unique_identifier.blank?
|
16
|
+
end
|
17
|
+
|
18
|
+
# Save this record to the EVVNT API
|
19
|
+
#
|
20
|
+
# Returns {Evvnt::Base} subclass
|
21
|
+
def save
|
22
|
+
new_record? ? save_as_new_record : save_as_persisted_record
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
|
27
|
+
# Save this record to the EVVNT API as a new record using the +create+ action.
|
28
|
+
#
|
29
|
+
def save_as_new_record
|
30
|
+
new_attributes = attributes.reject { |k, _v| k.to_s =~ /^(id|uuid)$/ }
|
31
|
+
self.class.create(new_attributes)
|
32
|
+
end
|
33
|
+
|
34
|
+
# Save this record to the EVVNT API as an existing record using the +update+ action.
|
35
|
+
#
|
36
|
+
def save_as_persisted_record
|
37
|
+
new_attributes = attributes.reject { |k, _v| k.to_s =~ /^(id|uuid)$/ }
|
38
|
+
self.class.update(id, new_attributes)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/lib/evvnt/price.rb
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Evvnt
|
2
|
+
# Public: Represents published {Evvnt::Event Events} on the EVVNT API
|
3
|
+
class PublishedEvent < Evvnt::Base
|
4
|
+
|
5
|
+
##
|
6
|
+
# GET /events List Events
|
7
|
+
define_action :index
|
8
|
+
|
9
|
+
##
|
10
|
+
# GET /events/:event_id Get one event
|
11
|
+
define_action :show
|
12
|
+
|
13
|
+
##
|
14
|
+
# PUT /events/:event_id Update an event
|
15
|
+
define_action :update
|
16
|
+
|
17
|
+
|
18
|
+
belongs_to :publisher
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
data/lib/evvnt/report.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
module Evvnt
|
2
|
+
# Public: Returns report for a given {Evvnt::Event} from the API.
|
3
|
+
#
|
4
|
+
# Examples
|
5
|
+
#
|
6
|
+
# Evvnt::Report.find(event_id: '...')
|
7
|
+
#
|
8
|
+
class Report < Evvnt::Base
|
9
|
+
|
10
|
+
singular_resource!
|
11
|
+
|
12
|
+
belongs_to :event
|
13
|
+
|
14
|
+
##
|
15
|
+
# GET /events/:event_id/report View report data for my event
|
16
|
+
define_action :show
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def format_hash_attribute(key, value)
|
21
|
+
case key
|
22
|
+
when /^(referrers|search\_indexing)$/
|
23
|
+
send(:"format_#{key}_attribute", key, value)
|
24
|
+
else
|
25
|
+
super
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def format_array_attribute(key, value)
|
30
|
+
case key
|
31
|
+
when /^(clicks\_by\_day|broadcasts)$/
|
32
|
+
send(:"format_#{key}_attribute", key, value)
|
33
|
+
else
|
34
|
+
super
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def format_referrers_attribute(_key, value)
|
39
|
+
value.to_a.map { |url, count| Evvnt::Referrer.new(url: url, count: count) }
|
40
|
+
end
|
41
|
+
|
42
|
+
def format_search_indexing_attribute(_key, value)
|
43
|
+
value.to_a.map { |name, url| Evvnt::SearchIndexing.new(name: name, url: url) }
|
44
|
+
end
|
45
|
+
|
46
|
+
def format_broadcasts_attribute(_key, value)
|
47
|
+
Array(value).map { |atts| Evvnt::Broadcast.new(atts) }
|
48
|
+
end
|
49
|
+
|
50
|
+
def format_clicks_by_day_attribute(_key, value)
|
51
|
+
value.to_a[1..-1].map do |date, twitter, myspace, total|
|
52
|
+
Evvnt::ClicksByDay.new(date: date, twitter: twitter,
|
53
|
+
myspace: myspace, total: total)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
data/lib/evvnt/user.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
module Evvnt
|
2
|
+
# Fetch EVVNT Users from the API
|
3
|
+
class User < Evvnt::Base
|
4
|
+
|
5
|
+
##
|
6
|
+
# POST /users Create a user
|
7
|
+
define_action :create
|
8
|
+
|
9
|
+
|
10
|
+
##
|
11
|
+
# GET /users Get a list of all users created by you
|
12
|
+
define_action :index
|
13
|
+
|
14
|
+
##
|
15
|
+
# GET /users/:user_id Get details of a user
|
16
|
+
define_action :show
|
17
|
+
|
18
|
+
|
19
|
+
##
|
20
|
+
# PUT /users/:user_id Update a user
|
21
|
+
define_action :update
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
data/lib/evvnt/venue.rb
ADDED
data/lib/evvnt.rb
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
require "active_support/core_ext/object/inclusion"
|
2
|
+
require "active_support/configurable"
|
3
|
+
require "active_support/concern"
|
4
|
+
require "active_support/core_ext/string"
|
5
|
+
require "active_support/core_ext/hash"
|
6
|
+
require "active_support/hash_with_indifferent_access"
|
7
|
+
|
8
|
+
require 'logger'
|
9
|
+
require 'httparty'
|
10
|
+
require "evvnt/version"
|
11
|
+
require "evvnt/configuration"
|
12
|
+
|
13
|
+
# Master module for Evvnt functionality.
|
14
|
+
module Evvnt
|
15
|
+
# frozen_string_literal: true
|
16
|
+
|
17
|
+
module_function
|
18
|
+
|
19
|
+
def configure(&block)
|
20
|
+
@configuration = Evvnt::Configuration.new(&block)
|
21
|
+
end
|
22
|
+
|
23
|
+
def configuration
|
24
|
+
@configuration ||= configure
|
25
|
+
end
|
26
|
+
|
27
|
+
require "evvnt/base"
|
28
|
+
require "evvnt/audience_reach"
|
29
|
+
require "evvnt/broadcast"
|
30
|
+
require "evvnt/broadcast_result"
|
31
|
+
require "evvnt/category"
|
32
|
+
require "evvnt/clicks_by_day"
|
33
|
+
require "evvnt/contact"
|
34
|
+
require "evvnt/contract"
|
35
|
+
require "evvnt/event"
|
36
|
+
require "evvnt/link"
|
37
|
+
require "evvnt/package"
|
38
|
+
require "evvnt/price"
|
39
|
+
require "evvnt/published_event"
|
40
|
+
require "evvnt/publisher"
|
41
|
+
require "evvnt/referrer"
|
42
|
+
require "evvnt/report"
|
43
|
+
require "evvnt/search_indexing"
|
44
|
+
require "evvnt/user"
|
45
|
+
require "evvnt/venue"
|
46
|
+
end
|
metadata
ADDED
@@ -0,0 +1,255 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: evvnt
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Bodacious
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2018-03-09 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: httparty
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.16.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.16.0
|
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.16'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.16'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.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: rspec_junit_formatter
|
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: rubocop
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '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
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: dotenv
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: byebug
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rspec-json_matchers
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rspec-collection_matchers
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
description: Provides a wrapper and helper classes for the EVVNT rest API
|
182
|
+
email:
|
183
|
+
- bodacious@katanacode.com
|
184
|
+
executables: []
|
185
|
+
extensions: []
|
186
|
+
extra_rdoc_files: []
|
187
|
+
files:
|
188
|
+
- ".circleci/config.yml"
|
189
|
+
- ".gitignore"
|
190
|
+
- ".rspec"
|
191
|
+
- ".rubocop.yml"
|
192
|
+
- Gemfile
|
193
|
+
- Gemfile.lock
|
194
|
+
- LICENSE.txt
|
195
|
+
- README.md
|
196
|
+
- Rakefile
|
197
|
+
- bin/console
|
198
|
+
- bin/setup
|
199
|
+
- evvnt.gemspec
|
200
|
+
- lib/evvnt.rb
|
201
|
+
- lib/evvnt/actions.rb
|
202
|
+
- lib/evvnt/api.rb
|
203
|
+
- lib/evvnt/api_error.rb
|
204
|
+
- lib/evvnt/audience_reach.rb
|
205
|
+
- lib/evvnt/base.rb
|
206
|
+
- lib/evvnt/broadcast.rb
|
207
|
+
- lib/evvnt/broadcast_result.rb
|
208
|
+
- lib/evvnt/category.rb
|
209
|
+
- lib/evvnt/class_template_methods.rb
|
210
|
+
- lib/evvnt/clicks_by_day.rb
|
211
|
+
- lib/evvnt/configuration.rb
|
212
|
+
- lib/evvnt/contact.rb
|
213
|
+
- lib/evvnt/contract.rb
|
214
|
+
- lib/evvnt/event.rb
|
215
|
+
- lib/evvnt/instance_template_methods.rb
|
216
|
+
- lib/evvnt/link.rb
|
217
|
+
- lib/evvnt/logging.rb
|
218
|
+
- lib/evvnt/nested_resources.rb
|
219
|
+
- lib/evvnt/package.rb
|
220
|
+
- lib/evvnt/path_helpers.rb
|
221
|
+
- lib/evvnt/persistence.rb
|
222
|
+
- lib/evvnt/price.rb
|
223
|
+
- lib/evvnt/published_event.rb
|
224
|
+
- lib/evvnt/publisher.rb
|
225
|
+
- lib/evvnt/referrer.rb
|
226
|
+
- lib/evvnt/report.rb
|
227
|
+
- lib/evvnt/search_indexing.rb
|
228
|
+
- lib/evvnt/user.rb
|
229
|
+
- lib/evvnt/venue.rb
|
230
|
+
- lib/evvnt/version.rb
|
231
|
+
homepage: https://github.com/katanacode.com/evvnt
|
232
|
+
licenses:
|
233
|
+
- MIT
|
234
|
+
metadata: {}
|
235
|
+
post_install_message:
|
236
|
+
rdoc_options: []
|
237
|
+
require_paths:
|
238
|
+
- lib
|
239
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
245
|
+
requirements:
|
246
|
+
- - ">="
|
247
|
+
- !ruby/object:Gem::Version
|
248
|
+
version: '0'
|
249
|
+
requirements: []
|
250
|
+
rubyforge_project:
|
251
|
+
rubygems_version: 2.7.3
|
252
|
+
signing_key:
|
253
|
+
specification_version: 4
|
254
|
+
summary: A wrapper for the EVVNT API
|
255
|
+
test_files: []
|