sequel-fusiontables 0.0.2 → 0.0.3
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.
@@ -10,16 +10,34 @@ module Sequel
|
|
10
10
|
FusionTables::Dataset.new(self, opts)
|
11
11
|
end
|
12
12
|
|
13
|
-
def execute(sql, opts={}, &block)
|
13
|
+
def execute(sql, opts = {}, &block)
|
14
14
|
_execute(:select, sql, opts, &block)
|
15
15
|
end
|
16
16
|
|
17
|
+
def execute_insert(sql, opts = {})
|
18
|
+
_execute(:insert, sql, opts)
|
19
|
+
end
|
20
|
+
|
21
|
+
def execute_dui(sql, opts = {})
|
22
|
+
_execute(:update, sql, opts)
|
23
|
+
end
|
24
|
+
|
17
25
|
def self.uri_to_options(uri)
|
18
|
-
{:
|
26
|
+
{:email => uri.user, :password => uri.password}
|
19
27
|
end
|
20
28
|
|
21
29
|
def connect(server)
|
22
|
-
::FusionTables::Connection.new
|
30
|
+
connection = ::FusionTables::Connection.new
|
31
|
+
|
32
|
+
if opts[:email]
|
33
|
+
connection.authenticate(opts[:email], opts[:password])
|
34
|
+
end
|
35
|
+
|
36
|
+
connection
|
37
|
+
end
|
38
|
+
|
39
|
+
def identifier_input_method_default
|
40
|
+
nil
|
23
41
|
end
|
24
42
|
|
25
43
|
protected
|
@@ -32,6 +50,11 @@ module Sequel
|
|
32
50
|
case type
|
33
51
|
when :select
|
34
52
|
log_yield(sql, log_args) { yield(conn.query(sql)) }
|
53
|
+
when :insert
|
54
|
+
result = log_yield(sql, log_args) { conn.query(sql) }
|
55
|
+
result[1][0]
|
56
|
+
when :update
|
57
|
+
result = log_yield(sql, log_args) { conn.query(sql) }
|
35
58
|
end
|
36
59
|
end
|
37
60
|
rescue ::FusionTables::Error => e
|
@@ -52,6 +75,14 @@ module Sequel
|
|
52
75
|
end
|
53
76
|
end
|
54
77
|
|
78
|
+
def quoted_identifier(name)
|
79
|
+
::FusionTables::Connection.quote(name)
|
80
|
+
end
|
81
|
+
|
82
|
+
def literal_string(string)
|
83
|
+
::FusionTables::Connection.quote(string)
|
84
|
+
end
|
85
|
+
|
55
86
|
def fetch_rows(sql)
|
56
87
|
execute(sql) do |result|
|
57
88
|
@columns = result.shift
|
data/sequel-fusiontables.gemspec
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "sequel-fusiontables"
|
3
|
-
s.version = "0.0.
|
3
|
+
s.version = "0.0.3"
|
4
4
|
s.summary = "Fusion Tables adapter for Sequel"
|
5
5
|
s.authors = ["Damian Janowski"]
|
6
6
|
s.email = ["djanowski@dimaion.com"]
|
7
7
|
s.homepage = "http://github.com/djanowski/sequel-fusiontables"
|
8
8
|
|
9
|
-
s.add_dependency("ft")
|
9
|
+
s.add_dependency("ft", ">= 0.0.2")
|
10
10
|
s.add_dependency("sequel")
|
11
11
|
|
12
12
|
s.files = Dir[
|
@@ -0,0 +1,56 @@
|
|
1
|
+
require "cutest"
|
2
|
+
require "sequel"
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift(File.expand_path("../../../lib", File.dirname(__FILE__)))
|
5
|
+
|
6
|
+
require "ft"
|
7
|
+
|
8
|
+
class FusionTables::Connection
|
9
|
+
def authenticate(email, password)
|
10
|
+
$credentials = {:email => email, :password => password}
|
11
|
+
end
|
12
|
+
|
13
|
+
def query(sql)
|
14
|
+
$queries << sql
|
15
|
+
[["rowid"], [$queries.size]]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
setup do
|
20
|
+
$queries = []
|
21
|
+
|
22
|
+
[Sequel.connect("fusiontables:///")[1310767], $queries]
|
23
|
+
end
|
24
|
+
|
25
|
+
test "INSERT" do |db, queries|
|
26
|
+
assert_equal queries.size, 0
|
27
|
+
|
28
|
+
id = db.insert(foo: "bar")
|
29
|
+
|
30
|
+
assert_equal queries.last, "INSERT INTO 1310767 ('foo') VALUES ('bar')"
|
31
|
+
assert_equal id, 1
|
32
|
+
|
33
|
+
id = db.insert("Foo" => "bar's")
|
34
|
+
|
35
|
+
assert_equal queries.last, "INSERT INTO 1310767 ('Foo') VALUES ('bar\\'s')"
|
36
|
+
assert_equal id, 2
|
37
|
+
end
|
38
|
+
|
39
|
+
test "UPDATE" do |db, queries|
|
40
|
+
db.filter(rowid: "1").update(foo: "bar")
|
41
|
+
|
42
|
+
assert_equal queries.last, "UPDATE 1310767 SET 'foo' = 'bar' WHERE 'rowid' = '1'"
|
43
|
+
end
|
44
|
+
|
45
|
+
test "DELETE" do |db, queries|
|
46
|
+
db.filter(rowid: "1").delete
|
47
|
+
|
48
|
+
assert_equal queries.last, "DELETE FROM 1310767 WHERE 'rowid' = '1'"
|
49
|
+
end
|
50
|
+
|
51
|
+
test "authentication" do
|
52
|
+
Sequel.connect("fusiontables://foo%40bar.com:p4wned@fusiontables")[1310767].all
|
53
|
+
|
54
|
+
assert_equal $credentials[:email], "foo@bar.com"
|
55
|
+
assert_equal $credentials[:password], "p4wned"
|
56
|
+
end
|
metadata
CHANGED
@@ -2,42 +2,42 @@
|
|
2
2
|
name: sequel-fusiontables
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.3
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
|
-
|
8
|
+
- Damian Janowski
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-08-
|
13
|
+
date: 2011-08-29 00:00:00 -03:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: ft
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ">="
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.2
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: sequel
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ">="
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: "0"
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
38
|
description:
|
39
39
|
email:
|
40
|
-
|
40
|
+
- djanowski@dimaion.com
|
41
41
|
executables: []
|
42
42
|
|
43
43
|
extensions: []
|
@@ -45,11 +45,12 @@ extensions: []
|
|
45
45
|
extra_rdoc_files: []
|
46
46
|
|
47
47
|
files:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
- sequel-fusiontables.gemspec
|
49
|
+
- UNLICENSE
|
50
|
+
- README.md
|
51
|
+
- lib/sequel/adapters/fusiontables.rb
|
52
|
+
- test/sequel/adapters/fusiontables.rb
|
53
|
+
- test/sequel/adapters/mocked.rb
|
53
54
|
has_rdoc: true
|
54
55
|
homepage: http://github.com/djanowski/sequel-fusiontables
|
55
56
|
licenses: []
|
@@ -58,23 +59,23 @@ post_install_message:
|
|
58
59
|
rdoc_options: []
|
59
60
|
|
60
61
|
require_paths:
|
61
|
-
|
62
|
+
- lib
|
62
63
|
required_ruby_version: !ruby/object:Gem::Requirement
|
63
64
|
none: false
|
64
65
|
requirements:
|
65
|
-
|
66
|
-
|
67
|
-
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: "0"
|
68
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
69
70
|
none: false
|
70
71
|
requirements:
|
71
|
-
|
72
|
-
|
73
|
-
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: "0"
|
74
75
|
requirements: []
|
75
76
|
|
76
77
|
rubyforge_project:
|
77
|
-
rubygems_version: 1.
|
78
|
+
rubygems_version: 1.6.2
|
78
79
|
signing_key:
|
79
80
|
specification_version: 3
|
80
81
|
summary: Fusion Tables adapter for Sequel
|