fql 0.2.0 → 0.2.1

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.
@@ -2,10 +2,27 @@
2
2
 
3
3
  Easily execute FQL queries with this gem.
4
4
 
5
+ ## Download and installation
6
+
7
+ The latest version of fql can be installed with RubyGems:
8
+
9
+ ```bash
10
+ $ gem install fql
11
+ ```
12
+
13
+ If you're using Bundler, you can add it to your `Gemfile`:
14
+
15
+ ```ruby
16
+ gem 'fql'
17
+ ```
18
+
19
+ ## Examples
20
+
5
21
  *Exampe: a single query without access_token*
6
22
 
7
23
  ```ruby
8
24
  Fql.execute('SELECT first_name, last_name FROM user WHERE uid = 4')
25
+ # => [{"first_name"=>"Mark", "last_name"=>"Zuckerberg"}]
9
26
  ```
10
27
 
11
28
  *Exampe: a multi query with an access_token*
@@ -13,9 +30,10 @@ Easily execute FQL queries with this gem.
13
30
  ```ruby
14
31
  options = { :access_token => "fb_access_token" }
15
32
  Fql.execute({
16
- "query1" => "SELECT uid, rsvp_status FROM event_member WHERE eid = 12345678",
17
- "query2" => "SELECT name FROM profile WHERE id IN (SELECT uid FROM #query1)"
33
+ "query1" => "SELECT uid, rsvp_status FROM event_member WHERE eid = 209798352393506 LIMIT 3",
34
+ "query2" => "SELECT name FROM user WHERE uid IN (SELECT uid FROM #query1)"
18
35
  }, options)
36
+ # => [{"name"=>"query1", "fql_result_set"=>[{"uid"=>712638919, "rsvp_status"=>"attending"}, {"uid"=>711903876, "rsvp_status"=>"attending"}, {"uid"=>711447283, "rsvp_status"=>"attending"}]}, {"name"=>"query2", "fql_result_set"=>[{"name"=>"Srikanth Nagandla"}, {"name"=>"Hinling Yeung"}, {"name"=>"G\u00F6khan Olgun"}]}]
19
37
  ```
20
38
 
21
39
  ---
@@ -14,11 +14,26 @@ module Fql
14
14
  # Returns the query as a String which has been properly formatted and can be
15
15
  # sent to Facebook.
16
16
  def compose
17
- final_query = '{'
17
+ if @queries.length > 1
18
+ compose_multi_query
19
+ else
20
+ compose_single_query
21
+ end
22
+ end
23
+
24
+ protected
25
+
26
+ def compose_multi_query
27
+ q = ''
18
28
  @queries.each do |key, query|
19
- final_query += "'" + key.to_s + "':'" + query + "',"
29
+ q += "'#{key}':'#{query}',"
20
30
  end
21
- final_query[0...-1] + '}' # Remove last ',' and add closing '}'
31
+ # Remove last ',' and add enclosing braces
32
+ '{' + q[0...-1] + '}'
33
+ end
34
+
35
+ def compose_single_query
36
+ @queries[:q]
22
37
  end
23
38
 
24
39
  end
@@ -1,3 +1,3 @@
1
1
  module Fql
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,24 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-15 00:00:00.000000000 Z
12
+ date: 2012-09-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
- - - ! '>='
19
+ - - ~>
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: 1.3.6
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
- - - ! '>='
27
+ - - ~>
28
28
  - !ruby/object:Gem::Version
29
- version: '0'
29
+ version: 1.3.6
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: rails
32
32
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +50,7 @@ dependencies:
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
- version: '0'
53
+ version: 1.3.6
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,23 +58,23 @@ dependencies:
58
58
  requirements:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 1.3.6
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: fakeweb
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
- - - ! '>='
67
+ - - ~>
68
68
  - !ruby/object:Gem::Version
69
- version: '0'
69
+ version: 1.3.0
70
70
  type: :development
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  none: false
74
74
  requirements:
75
- - - ! '>='
75
+ - - ~>
76
76
  - !ruby/object:Gem::Version
77
- version: '0'
77
+ version: 1.3.0
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: rb-fsevent
80
80
  requirement: !ruby/object:Gem::Requirement
@@ -107,7 +107,9 @@ dependencies:
107
107
  - - ! '>='
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
- description: Allows you to easily use FQL in Ruby.
110
+ description: ! " A simple gem to easily use the Facebook Query Language. Just specify
111
+ single\n queries as strings or use hashes to compose multiqueries and send them
112
+ to\n Facebook using `Fql.execute(query)`.\n"
111
113
  email:
112
114
  - maartencls@gmail.com
113
115
  executables: []
@@ -143,6 +145,7 @@ files:
143
145
  - test/dummy/config/locales/en.yml
144
146
  - test/dummy/config/routes.rb
145
147
  - test/dummy/config.ru
148
+ - test/dummy/log/test.log
146
149
  - test/dummy/public/404.html
147
150
  - test/dummy/public/422.html
148
151
  - test/dummy/public/500.html
@@ -164,7 +167,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
164
167
  requirements:
165
168
  - - ! '>='
166
169
  - !ruby/object:Gem::Version
167
- version: '0'
170
+ version: 1.9.0
168
171
  required_rubygems_version: !ruby/object:Gem::Requirement
169
172
  none: false
170
173
  requirements:
@@ -199,6 +202,7 @@ test_files:
199
202
  - test/dummy/config/locales/en.yml
200
203
  - test/dummy/config/routes.rb
201
204
  - test/dummy/config.ru
205
+ - test/dummy/log/test.log
202
206
  - test/dummy/public/404.html
203
207
  - test/dummy/public/422.html
204
208
  - test/dummy/public/500.html