gigatools 0.0.0 → 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 +4 -4
- data/lib/gigatools.rb +5 -56
- data/lib/gigatools_event.rb +52 -0
- data/lib/gigatools_user.rb +22 -0
- data/lib/gigatools_utils.rb +11 -0
- metadata +7 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bb52a2cc839e3626e1461e5f3b20ee25822d1b22
|
|
4
|
+
data.tar.gz: 8ed7b003c9c77fd2cd6fddba14eba69053d4de96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 38750ac30c6c7577d1d3a2817cbe98601932bb707a94fb8bc4c24605c6d471536d63e8af4da95bdf72ba6229aed20618ff32a50265652b0a0e121011cc2568b5
|
|
7
|
+
data.tar.gz: 357686b8dd45a3c26a4fc03352a74d581de123990b027172ee17e9a871215ba3802f97a7fbcc5ad55181b048153a2d952fa2aaa6a34a9f917ddac64ae81597a8
|
data/lib/gigatools.rb
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
1
|
class Gigatools
|
|
2
|
+
require 'gigatools_user'
|
|
3
|
+
require 'gigatools_event'
|
|
2
4
|
require 'net/http'
|
|
3
5
|
require 'json'
|
|
4
6
|
|
|
7
|
+
# This method takes in a username string and returns either a
|
|
8
|
+
# GigatoolsUser object or nil if the user is not found.
|
|
5
9
|
def self.find_by_username(username)
|
|
6
10
|
uri = URI('http://gigs.gigatools.com/user/'+username+'.json')
|
|
7
11
|
response = Net::HTTP.get_response(uri)
|
|
12
|
+
|
|
8
13
|
if response.is_a?(Net::HTTPSuccess)
|
|
9
14
|
json_response = JSON.parse(response.body)
|
|
10
15
|
|
|
@@ -15,59 +20,3 @@ class Gigatools
|
|
|
15
20
|
end
|
|
16
21
|
end
|
|
17
22
|
end
|
|
18
|
-
|
|
19
|
-
class GigatoolsUser
|
|
20
|
-
attr_reader :id, :artistname, :bookingcontact, :mixcloud_url, :soundcloud_url,
|
|
21
|
-
:twittername, :url, :username, :widgetname, :events
|
|
22
|
-
|
|
23
|
-
def initialize(user_json, events_json)
|
|
24
|
-
user_json.each do |key,value|
|
|
25
|
-
value = (value.class == String) ? value.strip : value
|
|
26
|
-
instance_variable_set("@#{key}", value)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
@events = GigatoolsEvent.create_list(events_json)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
class GigatoolsEvent
|
|
34
|
-
require 'time'
|
|
35
|
-
|
|
36
|
-
attr_reader :id, :artists, :city, :country, :eventdate, :image_url, :info,
|
|
37
|
-
:name, :showtime, :state, :url, :url_tix, :venue
|
|
38
|
-
|
|
39
|
-
def initialize(event_json)
|
|
40
|
-
event_json.each do |key,value|
|
|
41
|
-
if value.class == String
|
|
42
|
-
value = (value.strip.empty?)? nil : value.strip
|
|
43
|
-
end
|
|
44
|
-
instance_variable_set("@#{key}", value)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
@eventdate = Date.parse(event_json["eventdate"]) if event_json["eventdate"]
|
|
48
|
-
@showtime = Time.parse(event_json["showtime"]) if event_json["showtime"]
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def self.create_list(events_json)
|
|
52
|
-
events = []
|
|
53
|
-
events_json.each do |event|
|
|
54
|
-
events << GigatoolsEvent.new(event["event"])
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
return events
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def event_venue
|
|
61
|
-
major_geo = self.state || self.country
|
|
62
|
-
[self.venue, self.city, major_geo].compact.join(", ")
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def event_date(format = "%^a %d %^b")
|
|
66
|
-
date = self.eventdate || self.showtime
|
|
67
|
-
Time.parse(date).strftime(format) if date
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def event_time(format = "%l:%M %p")
|
|
71
|
-
Time.parse(self.showtime).strftime(format) if self.showtime
|
|
72
|
-
end
|
|
73
|
-
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
class GigatoolsEvent
|
|
2
|
+
require 'gigatools_utils'
|
|
3
|
+
require 'time'
|
|
4
|
+
|
|
5
|
+
include GigatoolsUtils
|
|
6
|
+
|
|
7
|
+
attr_reader :id, :artists, :city,
|
|
8
|
+
:country, :eventdate, :image_url,
|
|
9
|
+
:info, :name, :showtime, :state,
|
|
10
|
+
:url, :url_tix, :venue
|
|
11
|
+
|
|
12
|
+
def initialize(event_json)
|
|
13
|
+
self.set_attributes(event_json)
|
|
14
|
+
@eventdate = Date.parse(event_json["eventdate"]) if event_json["eventdate"]
|
|
15
|
+
@showtime = Time.parse(event_json["showtime"]) if event_json["showtime"]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Returns an array of GigatoolsEvent objects created from a JSON list
|
|
19
|
+
def self.create_list(events_json)
|
|
20
|
+
events = []
|
|
21
|
+
events_json.each do |event|
|
|
22
|
+
events << GigatoolsEvent.new(event["event"])
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
return events
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
# Returns the city and state/country for an event if available
|
|
29
|
+
def venue_location
|
|
30
|
+
major_geo = self.state || self.country
|
|
31
|
+
[self.city, major_geo].compact.join(", ")
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# Returns a stringified version of the event date. Takes an optional
|
|
35
|
+
# strftime string as an argument for formatting.
|
|
36
|
+
def event_date(format = "%^a %d %^b")
|
|
37
|
+
date = self.eventdate || self.showtime
|
|
38
|
+
date.strftime(format) if date
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Returns a stringified version of the event time if the event
|
|
42
|
+
# has a showtime. Takes an optional strftime string as an argument
|
|
43
|
+
# for formatting.
|
|
44
|
+
def event_time(format = "%l:%M %p")
|
|
45
|
+
self.showtime.strftime(format) if self.showtime
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
# Returns gigatools user url string
|
|
49
|
+
def event_url
|
|
50
|
+
"http://gigs.gigatools.com/gig/#{self.id}"
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
class GigatoolsUser
|
|
2
|
+
require 'gigatools_utils'
|
|
3
|
+
include GigatoolsUtils
|
|
4
|
+
|
|
5
|
+
attr_reader :id, :artistname, :url,
|
|
6
|
+
:username, :bookingcontact, :mixcloud_url,
|
|
7
|
+
:soundcloud_url, :twittername, :widgetname
|
|
8
|
+
|
|
9
|
+
# events returns an array of GigatoolsEvent objects
|
|
10
|
+
#if the user has any upcoming events
|
|
11
|
+
attr_reader :events
|
|
12
|
+
|
|
13
|
+
def initialize(user_json, events_json)
|
|
14
|
+
self.set_attributes(user_json)
|
|
15
|
+
@events = GigatoolsEvent.create_list(events_json)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Returns gigatools user url
|
|
19
|
+
def gigatools_url
|
|
20
|
+
"http://gigs.gigatools.com/user/#{self.username}"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
module GigatoolsUtils
|
|
2
|
+
# This method sets instance variables from a json list
|
|
3
|
+
def set_attributes(json)
|
|
4
|
+
json.each do |key,value|
|
|
5
|
+
if value.class == String
|
|
6
|
+
value = (value.strip.empty?)? nil : value.strip
|
|
7
|
+
end
|
|
8
|
+
instance_variable_set("@#{key}", value)
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
metadata
CHANGED
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gigatools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joseph Hernandez
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2014-10-
|
|
11
|
+
date: 2014-10-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
|
-
description: A simple gem for integrating basic Gigatools
|
|
13
|
+
description: A simple gem for integrating basic Gigatools user information
|
|
14
14
|
email: joe@imjoe.co
|
|
15
15
|
executables: []
|
|
16
16
|
extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
|
18
18
|
files:
|
|
19
19
|
- lib/gigatools.rb
|
|
20
|
+
- lib/gigatools_event.rb
|
|
21
|
+
- lib/gigatools_user.rb
|
|
22
|
+
- lib/gigatools_utils.rb
|
|
20
23
|
homepage: http://rubygems.org/gems/gigatools
|
|
21
24
|
licenses:
|
|
22
25
|
- MIT
|
|
@@ -42,3 +45,4 @@ signing_key:
|
|
|
42
45
|
specification_version: 4
|
|
43
46
|
summary: Unofficial Gigatools Gem
|
|
44
47
|
test_files: []
|
|
48
|
+
has_rdoc:
|