chairnerd 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +18 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +14 -0
- data/README.md +4 -0
- data/Rakefile +1 -0
- data/chairnerd.gemspec +13 -0
- data/lib/chairnerd/client.rb +54 -0
- data/lib/chairnerd/event.rb +16 -0
- data/lib/chairnerd/response/base.rb +13 -0
- data/lib/chairnerd/response/collection_response.rb +10 -0
- data/lib/chairnerd/response/event_response.rb +19 -0
- data/lib/chairnerd/response/events_response.rb +14 -0
- data/lib/chairnerd/version.rb +3 -0
- metadata +14 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 05bced225ab7692f5c174c51f00d6df5f9f0fe64
|
4
|
+
data.tar.gz: 8642859674c3fb9b1b2c8ecf3198f2bbfe075700
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 36eb7f6ed8c1027dd72636856429e6280ac1ec7eb7a335c518a38834746468c19ec05f62e5b153946c5b2ea5173379e0a7d95075308ae4efb98b2a6684bc9c21
|
7
|
+
data.tar.gz: 86331ab9a9d9a3860a79ce62c27c306a605a3de41b1acb8637def7e6ccb52ce14aea3ed9b0775b178f83c956d763b18e2a5fe35a578b245a497961a19ea8e4e3
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/chairnerd.gemspec
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
require_relative 'lib/chairnerd/version'
|
2
|
+
Gem::Specification.new do |s|
|
3
|
+
s.name = 'chairnerd'
|
4
|
+
s.version = Chairnerd::VERSION
|
5
|
+
s.date = '2014-03-26'
|
6
|
+
s.summary = "A wrapper for the Seatgeek API"
|
7
|
+
s.description = "A wrapper for the Seatgeek API"
|
8
|
+
s.authors = ["Ryan Urabe"]
|
9
|
+
s.email = 'rurabe@gmail.com'
|
10
|
+
s.files = `git ls-files`.split("\n")
|
11
|
+
s.homepage = 'http://github.com/rurabe/chairnerd'
|
12
|
+
s.license = 'MIT'
|
13
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module Chairnerd
|
2
|
+
class Client
|
3
|
+
BASE = "http://api.seatgeek.com/2"
|
4
|
+
class << self
|
5
|
+
def make_request(endpoint,params={})
|
6
|
+
url = build_request(endpoint,params)
|
7
|
+
response = get( url )
|
8
|
+
[url,parse( response )]
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def build_request(endpoint,params={})
|
14
|
+
"#{BASE}/#{endpoint}#{build_params(params)}"
|
15
|
+
end
|
16
|
+
|
17
|
+
def build_params(params={})
|
18
|
+
case params
|
19
|
+
when Hash then "?#{build_query(params)}"
|
20
|
+
else "/#{params}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def build_query(params={})
|
25
|
+
params.map do |k,v|
|
26
|
+
case v
|
27
|
+
when Hash
|
28
|
+
build_sub_param(k,v)
|
29
|
+
else
|
30
|
+
"#{CGI.escape(k.to_s)}=#{CGI.escape(v.to_s)}"
|
31
|
+
end
|
32
|
+
end.join("&")
|
33
|
+
end
|
34
|
+
|
35
|
+
def build_sub_param(namespace,param={})
|
36
|
+
namespaced_params = param.each_with_object({}) do |(subk,subv),h|
|
37
|
+
h.merge!("#{namespace}.#{subk}" => subv)
|
38
|
+
end
|
39
|
+
build_query(namespaced_params)
|
40
|
+
end
|
41
|
+
|
42
|
+
def get(url)
|
43
|
+
uri = URI(url)
|
44
|
+
Net::HTTP.new(uri.host,uri.port).start do |http|
|
45
|
+
http.get(uri)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def parse(response)
|
50
|
+
JSON.parse(response.body)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Chairnerd
|
2
|
+
class Event
|
3
|
+
class << self
|
4
|
+
def find(params={})
|
5
|
+
request = Chairnerd::Client.make_request(:events,params)
|
6
|
+
Response::EventsResponse.new(*request)
|
7
|
+
end
|
8
|
+
|
9
|
+
def find_by_id(event_id)
|
10
|
+
request = Chairnerd::Client.make_request(:events,event_id)
|
11
|
+
Response::EventResponse.new(*request)
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Chairnerd
|
2
|
+
module Response
|
3
|
+
class EventResponse < Base
|
4
|
+
|
5
|
+
def datetime_local
|
6
|
+
DateTime.parse(@response['datetime_local'])
|
7
|
+
end
|
8
|
+
|
9
|
+
def url
|
10
|
+
@response['url']
|
11
|
+
end
|
12
|
+
|
13
|
+
def title
|
14
|
+
@response['title']
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module Chairnerd
|
2
|
+
module Response
|
3
|
+
class EventsResponse < CollectionResponse
|
4
|
+
def initialize(request,response)
|
5
|
+
@collection = response["events"].map {|e| EventResponse.new(request,e) }
|
6
|
+
super(request,response)
|
7
|
+
end
|
8
|
+
|
9
|
+
def events
|
10
|
+
@collection
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chairnerd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Urabe
|
@@ -16,7 +16,20 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- ".gitignore"
|
20
|
+
- Gemfile
|
21
|
+
- Gemfile.lock
|
22
|
+
- README.md
|
23
|
+
- Rakefile
|
24
|
+
- chairnerd.gemspec
|
19
25
|
- lib/chairnerd.rb
|
26
|
+
- lib/chairnerd/client.rb
|
27
|
+
- lib/chairnerd/event.rb
|
28
|
+
- lib/chairnerd/response/base.rb
|
29
|
+
- lib/chairnerd/response/collection_response.rb
|
30
|
+
- lib/chairnerd/response/event_response.rb
|
31
|
+
- lib/chairnerd/response/events_response.rb
|
32
|
+
- lib/chairnerd/version.rb
|
20
33
|
homepage: http://github.com/rurabe/chairnerd
|
21
34
|
licenses:
|
22
35
|
- MIT
|