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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 55c2e96830a8a83d071a64809d105ef016ddc82a
4
- data.tar.gz: 919a812ff40d039f6b454111a874b63ae784b547
3
+ metadata.gz: bb52a2cc839e3626e1461e5f3b20ee25822d1b22
4
+ data.tar.gz: 8ed7b003c9c77fd2cd6fddba14eba69053d4de96
5
5
  SHA512:
6
- metadata.gz: a576b6097489fca8938765f1b7936f158d049b689ff1b0baade9553dc5688bdbba35e301f2a5a834c491c5422be8ee84644d564060a6702e786159657e5eb1bc
7
- data.tar.gz: 7bfe704ea7a3bed428022e1fe08663fa9b2a2e9782f2a4e9435f4515c75f033002696047045ffe061183f5a1720a0d6d617b72f30e2befc9213117fccdbedfde
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.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-06 00:00:00.000000000 Z
11
+ date: 2014-10-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
- description: A simple gem for integrating basic Gigatools function
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: