eventick_api 0.1.0 → 0.1.1
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 +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +4 -1
- data/README.md +4 -2
- data/eventick.gemspec +0 -1
- data/lib/eventick.rb +3 -0
- data/lib/eventick/auth.rb +12 -14
- data/lib/eventick/base.rb +10 -35
- data/lib/eventick/exceptions.rb +6 -0
- data/lib/eventick/params_parser.rb +48 -0
- data/lib/eventick/version.rb +4 -1
- data/test/eventick/attendee_test.rb +1 -1
- data/test/eventick/auth_test.rb +0 -1
- data/test/eventick/base_test.rb +32 -0
- data/test/eventick/event_test.rb +1 -1
- data/test/eventick/params_parser_test.rb +30 -0
- data/test/test_helper.rb +1 -1
- metadata +9 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89a835bec6543e9d99d313cc32e0a22ba8398204
|
4
|
+
data.tar.gz: e7c5e9165c1aeab99ab40e7930454b39646b7342
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf11bf5ec09db60a260102d96004eb6dd2daa9a2cce40c4cf6b047f79abcacdba12eaf9db1d6d34ad4d9e25966f7b6895863182a43f7a94bd5d606bc9af2906c
|
7
|
+
data.tar.gz: e16ec8af9b615d9b138c1cb5929209abe5a99b0f7c586f441052d92dcfc75a68b754719439b9c693973efc9fc946acd24434eeca1e3f9f70ff44556c16c9f7ca
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.0.0-
|
1
|
+
ruby-2.0.0-p247
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Eventick
|
2
2
|
|
3
|
+
[](https://travis-ci.org/lukelex/eventick_api)
|
4
|
+
|
3
5
|
Eventick is a simple API wrapper public Eventick API.
|
4
6
|
|
5
7
|
TODO: Write a gem description
|
@@ -8,7 +10,7 @@ TODO: Write a gem description
|
|
8
10
|
|
9
11
|
Add this line to your application's Gemfile:
|
10
12
|
|
11
|
-
gem '
|
13
|
+
gem 'eventick_api'
|
12
14
|
|
13
15
|
And then execute:
|
14
16
|
|
@@ -16,7 +18,7 @@ And then execute:
|
|
16
18
|
|
17
19
|
Or install it yourself as:
|
18
20
|
|
19
|
-
$ gem install
|
21
|
+
$ gem install eventick_api
|
20
22
|
|
21
23
|
## Usage
|
22
24
|
|
data/eventick.gemspec
CHANGED
@@ -21,7 +21,6 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_dependency 'json'
|
22
22
|
|
23
23
|
gem.add_development_dependency 'rake'
|
24
|
-
gem.add_development_dependency 'turn'
|
25
24
|
gem.add_development_dependency 'guard-minitest'
|
26
25
|
gem.add_development_dependency 'rb-fsevent'
|
27
26
|
gem.add_development_dependency 'minitest'
|
data/lib/eventick.rb
CHANGED
@@ -4,11 +4,14 @@ require 'cgi'
|
|
4
4
|
require 'openssl'
|
5
5
|
|
6
6
|
require_relative './eventick/version'
|
7
|
+
require_relative './eventick/base'
|
7
8
|
require_relative './eventick/auth'
|
8
9
|
require_relative './eventick/event'
|
9
10
|
require_relative './eventick/attendee'
|
10
11
|
require_relative './eventick/ticket'
|
11
12
|
require_relative './eventick/checkin'
|
13
|
+
require_relative './eventick/exceptions'
|
14
|
+
require_relative './eventick/params_parser'
|
12
15
|
|
13
16
|
module Eventick
|
14
17
|
BASE_URL = 'www.eventick.com.br'
|
data/lib/eventick/auth.rb
CHANGED
@@ -1,23 +1,21 @@
|
|
1
|
-
require_relative 'base'
|
2
|
-
|
3
1
|
module Eventick
|
4
2
|
class Auth < Base
|
5
|
-
|
3
|
+
resource 'tokens'
|
6
4
|
|
7
|
-
|
8
|
-
|
5
|
+
attr_accessor :email
|
6
|
+
attr_writer :password
|
9
7
|
|
10
|
-
|
11
|
-
|
12
|
-
|
8
|
+
def initialize(&block)
|
9
|
+
block.call self if block_given?
|
10
|
+
end
|
13
11
|
|
14
|
-
|
15
|
-
|
16
|
-
|
12
|
+
def token
|
13
|
+
@token ||= (get)['token']
|
14
|
+
end
|
17
15
|
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
def authenticated?
|
17
|
+
!!@token
|
18
|
+
end
|
21
19
|
|
22
20
|
private
|
23
21
|
def get
|
data/lib/eventick/base.rb
CHANGED
@@ -1,43 +1,18 @@
|
|
1
1
|
module Eventick
|
2
2
|
class Base
|
3
|
-
def self.resource(
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
if @resource
|
9
|
-
path = translate(args)
|
10
|
-
"#{ path }.json"
|
11
|
-
else
|
12
|
-
warn "The #{ self.name } class has not defined any resource path."
|
13
|
-
raise
|
3
|
+
def self.resource(resource)
|
4
|
+
if not resource
|
5
|
+
raise InvalidResource, "The #{ self.name } class has not defined any resource path."
|
6
|
+
elsif resource.include? ' '
|
7
|
+
raise InvalidResource, 'No spaces allowed on a resource'
|
14
8
|
end
|
15
|
-
end
|
16
9
|
|
17
|
-
|
18
|
-
last_resource_rexp = /\/:(.\w+)$/
|
19
|
-
resource_keys = /(?<=:)(.\w+)/
|
20
|
-
|
21
|
-
one = @resource.gsub(last_resource_rexp).count == 0
|
22
|
-
|
23
|
-
if args.empty?
|
24
|
-
matched = @resource.gsub(last_resource_rexp, "")
|
25
|
-
else
|
26
|
-
s_args = Hash[args.map{ |k, v| [k.to_s, v] }]
|
27
|
-
matched = @resource.gsub(resource_keys, s_args)
|
28
|
-
matched.gsub!(/:/ , "")
|
29
|
-
matched.gsub!(/\/$/ , "")
|
30
|
-
end
|
31
|
-
|
32
|
-
remaining = matched.gsub(resource_keys).count
|
33
|
-
|
34
|
-
if remaining != 0
|
35
|
-
warn "Missing arguments for #{ self.name } class resource path: #{ matched }."
|
36
|
-
raise
|
37
|
-
end
|
38
|
-
|
39
|
-
matched
|
10
|
+
@resource = resource
|
40
11
|
end
|
41
12
|
|
13
|
+
def self.path(params={})
|
14
|
+
path = (ParamsParser.new @resource, params).perform
|
15
|
+
"#{ path }.json"
|
16
|
+
end
|
42
17
|
end
|
43
18
|
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Eventick
|
2
|
+
class ParamsParser
|
3
|
+
RESOURCE_KEYS = /(?<=:)(.\w+)/
|
4
|
+
LAST_RESOURCE_REGEX = /\/:(.\w+)$/
|
5
|
+
|
6
|
+
def initialize(resource, params={})
|
7
|
+
@resource = resource
|
8
|
+
@params = params
|
9
|
+
|
10
|
+
def @params.with_stringified_keys
|
11
|
+
Hash[self.map{ |k, v| [k.to_s, v] }]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def perform
|
16
|
+
if missing_arguments
|
17
|
+
raise UnmatchableParams, "Missing arguments: #{missing_arguments}."
|
18
|
+
end
|
19
|
+
|
20
|
+
if @params.empty?
|
21
|
+
@resource.gsub(LAST_RESOURCE_REGEX, "")
|
22
|
+
else
|
23
|
+
stringified_hash = @params.with_stringified_keys
|
24
|
+
replace_resource_fields stringified_hash
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
def missing_arguments
|
30
|
+
if (missing = (params_needed - available_params)).length > 1
|
31
|
+
@missing_arguments = missing
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def params_needed
|
36
|
+
@params_needed ||= @resource.scan(RESOURCE_KEYS).flatten
|
37
|
+
end
|
38
|
+
|
39
|
+
def available_params
|
40
|
+
@params.with_stringified_keys.keys.flatten
|
41
|
+
end
|
42
|
+
|
43
|
+
def replace_resource_fields(stringified_hash)
|
44
|
+
result = @resource.gsub(RESOURCE_KEYS, stringified_hash)
|
45
|
+
result.gsub(/:/ , '').gsub(/\/$/ , '')
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
data/lib/eventick/version.rb
CHANGED
data/test/eventick/auth_test.rb
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module Eventick
|
4
|
+
describe Base do
|
5
|
+
describe '.resource' do
|
6
|
+
it 'should not allow an empty resource' do
|
7
|
+
lambda {Base.resource nil}.must_raise InvalidResource
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should not allow a resource with white spaces' do
|
11
|
+
lambda {Base.resource 'with spaces'}.must_raise InvalidResource
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe '.path' do
|
16
|
+
it 'with blank args' do
|
17
|
+
Base.resource 'some_resource_page'
|
18
|
+
Base.path.must_equal 'some_resource_page.json'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'single resource path without param' do
|
22
|
+
Base.resource 'some_route/:id'
|
23
|
+
Base.path.must_equal 'some_route.json'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'single resource path with param' do
|
27
|
+
Base.resource 'some_route/:id'
|
28
|
+
(Base.path id: 13).must_equal 'some_route/13.json'
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/test/eventick/event_test.rb
CHANGED
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module Eventick
|
4
|
+
describe ParamsParser do
|
5
|
+
describe '#perform' do
|
6
|
+
it 'simple route' do
|
7
|
+
parser = ParamsParser.new 'some_resource'
|
8
|
+
parser.perform.must_equal 'some_resource'
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'single param route' do
|
12
|
+
parser = ParamsParser.new 'some_resource/:id', id: 50
|
13
|
+
parser.perform.must_equal 'some_resource/50'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'double params route' do
|
17
|
+
parser = ParamsParser.new(
|
18
|
+
'some_resource/:id/something/:another_id',
|
19
|
+
id: 50, another_id: 9
|
20
|
+
)
|
21
|
+
parser.perform.must_equal 'some_resource/50/something/9'
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'double params route without params' do
|
25
|
+
parser = ParamsParser.new 'some_resource/:id/something/:another_id'
|
26
|
+
lambda {parser.perform}.must_raise UnmatchableParams
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventick_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lukas Alexandre
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: json
|
@@ -39,20 +39,6 @@ dependencies:
|
|
39
39
|
- - '>='
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: turn
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - '>='
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - '>='
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
56
42
|
- !ruby/object:Gem::Dependency
|
57
43
|
name: guard-minitest
|
58
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -134,13 +120,17 @@ files:
|
|
134
120
|
- lib/eventick/base.rb
|
135
121
|
- lib/eventick/checkin.rb
|
136
122
|
- lib/eventick/event.rb
|
123
|
+
- lib/eventick/exceptions.rb
|
124
|
+
- lib/eventick/params_parser.rb
|
137
125
|
- lib/eventick/ticket.rb
|
138
126
|
- lib/eventick/version.rb
|
139
127
|
- test/eventick/attendee_test.rb
|
140
128
|
- test/eventick/auth_test.rb
|
129
|
+
- test/eventick/base_test.rb
|
141
130
|
- test/eventick/checkin_test.rb
|
142
131
|
- test/eventick/event_test.rb
|
143
132
|
- test/eventick/eventick_test.rb
|
133
|
+
- test/eventick/params_parser_test.rb
|
144
134
|
- test/eventick/ticket_test.rb
|
145
135
|
- test/fixtures/attendee.json
|
146
136
|
- test/fixtures/attendees.json
|
@@ -169,16 +159,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
159
|
version: '0'
|
170
160
|
requirements: []
|
171
161
|
rubyforge_project:
|
172
|
-
rubygems_version: 2.0.
|
162
|
+
rubygems_version: 2.0.3
|
173
163
|
signing_key:
|
174
164
|
specification_version: 4
|
175
165
|
summary: Eventick is a simple API wrapper for Eventick's public API.
|
176
166
|
test_files:
|
177
167
|
- test/eventick/attendee_test.rb
|
178
168
|
- test/eventick/auth_test.rb
|
169
|
+
- test/eventick/base_test.rb
|
179
170
|
- test/eventick/checkin_test.rb
|
180
171
|
- test/eventick/event_test.rb
|
181
172
|
- test/eventick/eventick_test.rb
|
173
|
+
- test/eventick/params_parser_test.rb
|
182
174
|
- test/eventick/ticket_test.rb
|
183
175
|
- test/fixtures/attendee.json
|
184
176
|
- test/fixtures/attendees.json
|