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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7fed83a05d177af8556f171494f47504f8712e74
4
- data.tar.gz: 1b012a6119572c58636da6c03ca941968764f908
3
+ metadata.gz: 05bced225ab7692f5c174c51f00d6df5f9f0fe64
4
+ data.tar.gz: 8642859674c3fb9b1b2c8ecf3198f2bbfe075700
5
5
  SHA512:
6
- metadata.gz: d5b0a118eb47942ed767df2b3adf48221e761dc5c21242a4be5f07a6e5599399c5d68e1c5525ea485619a958ca59ba6a89655f8f6b85dba68a19c8971893d500
7
- data.tar.gz: 1ede79dd3a0b0fb76e115774835e5eb951a81443179eef47e162acfdb01efcadf7cb176da4bd245b75613d03764a43af50d5098b1194a8981e6f29217cf3dcaa
6
+ metadata.gz: 36eb7f6ed8c1027dd72636856429e6280ac1ec7eb7a335c518a38834746468c19ec05f62e5b153946c5b2ea5173379e0a7d95075308ae4efb98b2a6684bc9c21
7
+ data.tar.gz: 86331ab9a9d9a3860a79ce62c27c306a605a3de41b1acb8637def7e6ccb52ce14aea3ed9b0775b178f83c956d763b18e2a5fe35a578b245a497961a19ea8e4e3
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
@@ -0,0 +1,14 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ chairnerd (0.0.3)
5
+
6
+ GEM
7
+ remote: https://rubygems.org/
8
+ specs:
9
+
10
+ PLATFORMS
11
+ ruby
12
+
13
+ DEPENDENCIES
14
+ chairnerd!
@@ -0,0 +1,4 @@
1
+ Chairnerd
2
+ =========
3
+
4
+ A Ruby wrapper for the SeatGeek API.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -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,13 @@
1
+ module Chairnerd
2
+ module Response
3
+ class Base
4
+
5
+ attr_reader :request, :response
6
+ def initialize(request,response)
7
+ @request = request
8
+ @response = response
9
+ end
10
+
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,10 @@
1
+ module Chairnerd
2
+ module Response
3
+ class CollectionResponse < Base
4
+ def meta
5
+ @response['meta']
6
+ end
7
+
8
+ end
9
+ end
10
+ 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
@@ -0,0 +1,3 @@
1
+ module Chairnerd
2
+ VERSION = "0.0.5"
3
+ 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
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