carazel 0.1.1 → 0.2.0

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.
Files changed (4) hide show
  1. data/VERSION +1 -1
  2. data/carazel.gemspec +2 -2
  3. data/lib/carazel.rb +68 -15
  4. metadata +5 -5
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.2.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{carazel}
8
- s.version = "0.1.1"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Matt Mueller"]
12
- s.date = %q{2010-10-28}
12
+ s.date = %q{2010-10-29}
13
13
  s.description = %q{"Nothing to see here"}
14
14
  s.email = %q{muellermr@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -6,6 +6,8 @@ class Carazel
6
6
  include HTTParty
7
7
  base_uri 'dispatcher.carazel.com'
8
8
 
9
+ #Find and show users
10
+
9
11
  def users
10
12
  results = self.class.get('/users')
11
13
  Hashie::Mash.new(results).users
@@ -16,34 +18,85 @@ class Carazel
16
18
  Hashie::Mash.new(results).users rescue results
17
19
  end
18
20
 
19
- def user_rewards(id)
20
- results = self.class.get("/users/rewards?id=#{id}").first
21
+ #Find and show rewards as well as a given user's rewards
22
+
23
+ def rewards(type=nil)
24
+ if type.nil?
25
+ results = self.class.get("/rewards/search")
26
+ else
27
+ results = self.class.get("/rewards/search?type=type")
28
+ end
29
+ results.collect{|r| Hashie::Mash.new(r['reward'])}
30
+ end
31
+
32
+ def reward(id, reward_type)
33
+ results = self.class.get("/rewards/show?id=#{id}&reward_type=#{reward_type}")
34
+ Hashie::Mash.new(results.first['reward'])
35
+ end
36
+
37
+ def user_rewards(id, reward_type=nil)
38
+ query = self.build_query_string([['id=',id],['reward_type=',reward_type]])
39
+ results = self.class.get("/users/rewards?#{query}").first
21
40
  Hashie::Mash.new(results).rewards rescue results
22
41
  end
23
42
 
43
+
44
+ #Find and show places
45
+
24
46
  def place(id)
25
47
  results = self.class.get("/places/show?id=#{id}")
26
48
  Hashie::Mash.new(results.first['place']) rescue results
27
49
  end
28
50
 
29
- def places(lat,lon,query=nil)
30
- if query.nil?
31
- results = self.class.get("/places/search?lat=#{lat}&lon=#{lon}")
51
+ def places(lat,lon,term=nil)
52
+ query = self.build_query_string([['lat=',lat],['lon=',lon],['query=',term]])
53
+ results = self.class.get("/places/search?#{query}").collect{|r| Hashie::Mash.new(r['place'])}
54
+ end
55
+
56
+ #Find and show activities as well as a given user's activities
57
+
58
+ def activities(type=nil, limit=nil)
59
+ if type.nil? && limit.nil?
60
+ results = self.class.get("/activities/search")
32
61
  else
33
- results = self.class.get("/places/search?lat=#{lat}&lon=#{lon}&query=#{query}")
62
+ query = self.build_query_string([['type=',type],['limit=',limit]])
63
+ results = self.class.get("/activities/search?#{query}")
34
64
  end
35
- @places = []
36
- results.each do |result|
37
- r = Hashie::Mash.new(result['place'])
38
- @places << r
39
- end
40
- return @places
65
+ activities = results.collect{|r| Hashie::Mash.new(r['activity'])}
66
+ end
67
+
68
+ def activity(id)
69
+ results = self.class.get("/activities/show?id=#{id}")
70
+ Hashie::Mash.new(results.first['activity'])
41
71
  end
42
72
 
43
- def activities(id, since)
44
- results = self.class.get("/users/activities?id=#{id}&since=#{since}")
73
+ def user_activities(id, since, activity_type=nil)
74
+ query = self.build_query_string([['id=',id],['since=',since],['activity_type=',activity_type]])
75
+ results = self.class.get("/users/activities?#{query}")
45
76
  Hashie::Mash.new(results[0]).activities rescue results
46
77
  end
47
-
78
+
79
+ #Find and show lbs checkins as well as a given user's lbs checkins
80
+
81
+ def checkins(id=nil, since=nil, offset=nil)
82
+ query = self.build_query_string([['user_id=',id],['since=',since],['offset=',offset]])
83
+ results = self.class.get("/lbs_checkins/search?#{query}").collect{|r| Hashie::Mash.new(r['lbs_checkin'])}
84
+ end
85
+
86
+ def checkin(id)
87
+ results = self.class.get("/lbs_checkins/show?id=#{id}")
88
+ Hashie::Mash.new(results.first['lbs_checkin'])
89
+ end
90
+
91
+ def user_checkins(id, since=nil, offset=nil)
92
+ query = self.build_query_string([['user_id=',id],['since=',since],['offset=',offset]])
93
+ results = self.class.get("/lbs_checkins/search?#{query}").collect{|r| Hashie::Mash.new(r['lbs_checkin'])}
94
+ end
95
+
96
+ #Build query string for queries with multiple combinations of values
97
+
98
+ def build_query_string(variables)
99
+ variables.reject{|v| v[1].nil?}.collect{|r| r.join('')}.join('&')
100
+ end
48
101
  end
49
102
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: carazel
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 1
9
- - 1
10
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Matt Mueller
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-10-28 00:00:00 -05:00
18
+ date: 2010-10-29 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency