carazel 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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