fql 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 34419040302c147714e99cb7eddbb0308894dd97
4
+ data.tar.gz: 67ada8a05cbd94a7f1f645e684317b3a4cadd981
5
+ SHA512:
6
+ metadata.gz: ecb627fb33a5655c263dc57f4489f2c11000dc1f0aa11907fdc114c6f9190e8ea6fe2b892e58859f149882b2d347c2cd711895cd88f6a14066d1211bd31c92b9
7
+ data.tar.gz: 704df50720717395e8017be239e21e204930ec8512515cb45cd41d8a06c2140b168fb9a6c11c3bcca082da506bb91b68ee0e5853fe82898f135e284707f76520
data/README.markdown CHANGED
@@ -1,5 +1,7 @@
1
1
  # Fql
2
2
 
3
+ [![Code Climate](https://codeclimate.com/github/mcls/fql.png)](https://codeclimate.com/github/mcls/fql)
4
+
3
5
  Easily execute FQL queries with this gem.
4
6
 
5
7
  ## Download and installation
data/lib/fql/query.rb CHANGED
@@ -23,17 +23,21 @@ module Fql
23
23
 
24
24
  protected
25
25
 
26
+ def escape_query(query)
27
+ query.gsub(/(\r\n|\r|\n)/m, '')
28
+ end
29
+
26
30
  def compose_multi_query
27
31
  q = ''
28
32
  @queries.each do |key, query|
29
- q += "'#{key}':'#{query}',"
33
+ q += "'#{key}':'#{escape_query query}',"
30
34
  end
31
35
  # Remove last ',' and add enclosing braces
32
36
  '{' + q[0...-1] + '}'
33
37
  end
34
38
 
35
39
  def compose_single_query
36
- @queries[@queries.keys[0]]
40
+ escape_query @queries[@queries.keys[0]]
37
41
  end
38
42
 
39
43
  end
data/lib/fql/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Fql
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
data/lib/fql.rb CHANGED
@@ -30,12 +30,12 @@ module Fql
30
30
  end
31
31
 
32
32
  # Constructs the Facebook url which will return the results from the FQL
33
- # query. The FQL query and access_token are passed as GET parameters.
33
+ # query. The FQL query and optional access_token are passed as GET
34
+ # parameters.
35
+ #
34
36
  def make_url(fql_query, options = {})
35
37
  url = self::BASE_URL + URI.encode(fql_query.compose)
36
- if options.has_key?(:access_token)
37
- url += "&access_token=#{options[:access_token]}"
38
- end
38
+ url += URI.encode("&access_token=#{options[:access_token]}") if options && options[:access_token]
39
39
  URI.parse url
40
40
  end
41
41
 
@@ -27,10 +27,36 @@ class FqlQueryTest < ActiveSupport::TestCase
27
27
  assert_equal expected, actual
28
28
  end
29
29
 
30
+ test 'multiquery gets composed properly even if query is multiline' do
31
+ multi_query = {
32
+ all_friends: "SELECT uid2 FROM friend
33
+ WHERE uid1=me()",
34
+ my_name: "SELECT name FROM user\r\n WHERE uid=me()"
35
+ }
36
+ query = Fql::Query.new multi_query
37
+
38
+ actual = query.compose
39
+ expected = "{" +
40
+ "'all_friends':'SELECT uid2 FROM friend WHERE uid1=me()'," +
41
+ "'my_name':'SELECT name FROM user WHERE uid=me()'" +
42
+ "}"
43
+
44
+ assert_equal expected, actual
45
+ end
46
+
47
+
30
48
  test 'single query gets composed properly' do
31
49
  query = Fql::Query.new "SELECT name FROM user WHERE uid=me()"
32
50
  actual = query.compose
33
51
  expected = "SELECT name FROM user WHERE uid=me()"
34
52
  assert_equal expected, actual
35
53
  end
54
+
55
+ test 'single query gets composed properly even if it is multiline' do
56
+ query = Fql::Query.new "SELECT name FROM \r\nuser WHERE\r\n uid=me()"
57
+ actual = query.compose
58
+ expected = "SELECT name FROM user WHERE uid=me()"
59
+ assert_equal expected, actual
60
+ end
61
+
36
62
  end
data/test/fql_test.rb CHANGED
@@ -57,6 +57,16 @@ class FqlTest < ActiveSupport::TestCase
57
57
  end
58
58
  end
59
59
 
60
+ test "should add access_token as GET param to url if provided" do
61
+ query = Fql::Query.new('')
62
+
63
+ uri = Fql.make_url(query, access_token: 'token')
64
+ assert(uri.request_uri.include?("&access_token=token"))
65
+
66
+ uri = Fql.make_url(query)
67
+ assert(!uri.request_uri.include?("access_token"))
68
+ end
69
+
60
70
  def assert_executes_query_correctly(query, mocked_json_response)
61
71
  facebook_should_respond_with mocked_json_response
62
72
  actual = Fql.execute(query)
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
5
- prerelease:
4
+ version: 0.2.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - Maarten Claes
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-09-28 00:00:00.000000000 Z
11
+ date: 2013-04-02 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: multi_json
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rails
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ~>
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
@@ -46,23 +41,20 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: sqlite3
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: 1.3.6
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: 1.3.6
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: fakeweb
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ~>
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,6 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - ~>
76
67
  - !ruby/object:Gem::Version
@@ -78,38 +69,35 @@ dependencies:
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rb-fsevent
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-test
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
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"
97
+ description: |2
98
+ A simple gem to easily use the Facebook Query Language. Just specify single
99
+ queries as strings or use hashes to compose multiqueries and send them to
100
+ Facebook using `Fql.execute(query)`.
113
101
  email:
114
102
  - maartencls@gmail.com
115
103
  executables: []
@@ -158,27 +146,26 @@ files:
158
146
  - test/test_helper.rb
159
147
  homepage: https://github.com/mcls/fql
160
148
  licenses: []
149
+ metadata: {}
161
150
  post_install_message:
162
151
  rdoc_options: []
163
152
  require_paths:
164
153
  - lib
165
154
  required_ruby_version: !ruby/object:Gem::Requirement
166
- none: false
167
155
  requirements:
168
- - - ! '>='
156
+ - - '>='
169
157
  - !ruby/object:Gem::Version
170
158
  version: 1.9.0
171
159
  required_rubygems_version: !ruby/object:Gem::Requirement
172
- none: false
173
160
  requirements:
174
- - - ! '>='
161
+ - - '>='
175
162
  - !ruby/object:Gem::Version
176
163
  version: '0'
177
164
  requirements: []
178
165
  rubyforge_project:
179
- rubygems_version: 1.8.24
166
+ rubygems_version: 2.0.2
180
167
  signing_key:
181
- specification_version: 3
168
+ specification_version: 4
182
169
  summary: Facebook Query Language library
183
170
  test_files:
184
171
  - test/dummy/app/assets/javascripts/application.js