fauna 1.1.0 → 1.1.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.
- data/CHANGELOG +3 -1
- data/Manifest +24 -0
- data/fauna.gemspec +4 -4
- data/lib/fauna.rb +1 -1
- data/lib/fauna/connection.rb +3 -2
- data/lib/fauna/named_resource.rb +17 -0
- data/lib/fauna/resource.rb +2 -3
- data/test/client_test.rb +2 -2
- data/test/connection_test.rb +1 -1
- data/test/database_test.rb +1 -10
- data/test/set_test.rb +1 -1
- data/test/test_helper.rb +19 -18
- metadata +4 -5
- data/examples/welcome.rb +0 -73
- data/lib/fauna/provided_classes.rb +0 -39
data/CHANGELOG
CHANGED
data/Manifest
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
CHANGELOG
|
2
|
+
Gemfile
|
3
|
+
LICENSE
|
4
|
+
Manifest
|
5
|
+
README.md
|
6
|
+
Rakefile
|
7
|
+
fauna.gemspec
|
8
|
+
lib/fauna.rb
|
9
|
+
lib/fauna/cache.rb
|
10
|
+
lib/fauna/client.rb
|
11
|
+
lib/fauna/connection.rb
|
12
|
+
lib/fauna/named_resource.rb
|
13
|
+
lib/fauna/rails.rb
|
14
|
+
lib/fauna/resource.rb
|
15
|
+
lib/fauna/set.rb
|
16
|
+
lib/fauna/util.rb
|
17
|
+
lib/tasks/fauna.rake
|
18
|
+
test/class_test.rb
|
19
|
+
test/client_test.rb
|
20
|
+
test/connection_test.rb
|
21
|
+
test/database_test.rb
|
22
|
+
test/readme_test.rb
|
23
|
+
test/set_test.rb
|
24
|
+
test/test_helper.rb
|
data/fauna.gemspec
CHANGED
@@ -2,15 +2,15 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "fauna"
|
5
|
-
s.version = "1.1.
|
5
|
+
s.version = "1.1.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Fauna, Inc."]
|
9
|
-
s.date = "2013-
|
9
|
+
s.date = "2013-08-08"
|
10
10
|
s.description = "Official Ruby client for the Fauna API."
|
11
11
|
s.email = ""
|
12
|
-
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.md", "lib/fauna.rb", "lib/fauna/cache.rb", "lib/fauna/client.rb", "lib/fauna/connection.rb", "lib/fauna/
|
13
|
-
s.files = ["CHANGELOG", "Gemfile", "LICENSE", "Manifest", "README.md", "Rakefile", "
|
12
|
+
s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README.md", "lib/fauna.rb", "lib/fauna/cache.rb", "lib/fauna/client.rb", "lib/fauna/connection.rb", "lib/fauna/named_resource.rb", "lib/fauna/rails.rb", "lib/fauna/resource.rb", "lib/fauna/set.rb", "lib/fauna/util.rb", "lib/tasks/fauna.rake"]
|
13
|
+
s.files = ["CHANGELOG", "Gemfile", "LICENSE", "Manifest", "README.md", "Rakefile", "fauna.gemspec", "lib/fauna.rb", "lib/fauna/cache.rb", "lib/fauna/client.rb", "lib/fauna/connection.rb", "lib/fauna/named_resource.rb", "lib/fauna/rails.rb", "lib/fauna/resource.rb", "lib/fauna/set.rb", "lib/fauna/util.rb", "lib/tasks/fauna.rake", "test/class_test.rb", "test/client_test.rb", "test/connection_test.rb", "test/database_test.rb", "test/readme_test.rb", "test/set_test.rb", "test/test_helper.rb"]
|
14
14
|
s.homepage = "http://fauna.github.com/fauna/"
|
15
15
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Fauna", "--main", "README.md"]
|
16
16
|
s.require_paths = ["lib"]
|
data/lib/fauna.rb
CHANGED
data/lib/fauna/connection.rb
CHANGED
@@ -33,12 +33,13 @@ module Fauna
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
-
attr_reader :domain, :scheme
|
36
|
+
attr_reader :domain, :scheme, :port, :credentials
|
37
37
|
|
38
38
|
def initialize(params={})
|
39
39
|
@logger = params[:logger] || nil
|
40
40
|
@domain = params[:domain] || "rest1.fauna.org"
|
41
41
|
@scheme = params[:scheme] || "https"
|
42
|
+
@port = params[:port] || 80
|
42
43
|
|
43
44
|
if ENV["FAUNA_DEBUG"]
|
44
45
|
@logger = Logger.new(STDERR)
|
@@ -135,7 +136,7 @@ module Fauna
|
|
135
136
|
end
|
136
137
|
|
137
138
|
def url(ref)
|
138
|
-
"#{@scheme}://#{@credentials}@#{@domain}/#{ref}"
|
139
|
+
"#{@scheme}://#{@credentials}@#{@domain}:#{@port}/#{ref}"
|
139
140
|
end
|
140
141
|
end
|
141
142
|
end
|
data/lib/fauna/resource.rb
CHANGED
@@ -2,9 +2,8 @@ module Fauna
|
|
2
2
|
class Resource
|
3
3
|
def self.resource_subclass(fauna_class)
|
4
4
|
case fauna_class
|
5
|
-
when 'databases' then Fauna::
|
6
|
-
when 'classes' then Fauna::
|
7
|
-
when 'keys' then Fauna::Key
|
5
|
+
when 'databases' then Fauna::NamedResource
|
6
|
+
when 'classes' then Fauna::NamedResource
|
8
7
|
when 'resources' then Fauna::SetPage
|
9
8
|
when 'events' then Fauna::EventsPage
|
10
9
|
else Fauna::Resource
|
data/test/client_test.rb
CHANGED
@@ -19,7 +19,7 @@ class ClientTest < MiniTest::Unit::TestCase
|
|
19
19
|
user = Fauna::Resource.create("users", @attributes)
|
20
20
|
Fauna::Client.context(@client_connection) do
|
21
21
|
assert_raises(Fauna::Connection::Unauthorized) do
|
22
|
-
Fauna::
|
22
|
+
instance = Fauna::Resource.create("classes/posts", @attributes)
|
23
23
|
end
|
24
24
|
end
|
25
25
|
end
|
@@ -34,7 +34,7 @@ class ClientTest < MiniTest::Unit::TestCase
|
|
34
34
|
@token = Fauna::Client.post("tokens", @attributes)
|
35
35
|
end
|
36
36
|
|
37
|
-
Fauna::Client.context(Fauna::Connection.new(:secret => @token['secret'], :domain => @server_connection.domain, :scheme => @server_connection.scheme)) do
|
37
|
+
Fauna::Client.context(Fauna::Connection.new(:secret => @token['secret'], :domain => @server_connection.domain, :scheme => @server_connection.scheme, :port => @server_connection.port)) do
|
38
38
|
user = Fauna::Client.get(@token['user'])
|
39
39
|
Fauna::Client.delete(user['ref'])
|
40
40
|
end
|
data/test/connection_test.rb
CHANGED
@@ -11,7 +11,7 @@ class ConnectionTest < MiniTest::Unit::TestCase
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def test_get_with_invalid_key
|
14
|
-
connection = Fauna::Connection.new(:secret => 'bad_key', :domain => @server_connection.domain, :scheme => @server_connection.scheme)
|
14
|
+
connection = Fauna::Connection.new(:secret => 'bad_key', :domain => @server_connection.domain, :scheme => @server_connection.scheme, :port => @server_connection.port)
|
15
15
|
assert_raises(Fauna::Connection::Unauthorized) do
|
16
16
|
connection.get("users/instances")
|
17
17
|
end
|
data/test/database_test.rb
CHANGED
@@ -4,7 +4,7 @@ class DatabaseTest < MiniTest::Unit::TestCase
|
|
4
4
|
|
5
5
|
def setup
|
6
6
|
super
|
7
|
-
@model = Fauna::
|
7
|
+
@model = Fauna::Resource.new 'databases', :name => 'fauna-ruby-test2'
|
8
8
|
Fauna::Client.context(@root_connection) do
|
9
9
|
@model.save
|
10
10
|
end
|
@@ -16,15 +16,6 @@ class DatabaseTest < MiniTest::Unit::TestCase
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
|
-
def test_find
|
20
|
-
assert_raises(Fauna::Connection::Unauthorized) do
|
21
|
-
Fauna::Database.find(@model.ref)
|
22
|
-
end
|
23
|
-
Fauna::Client.context(@root_connection) do
|
24
|
-
assert_equal @model, Fauna::Database.find(@model.ref)
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
19
|
def test_self
|
29
20
|
database = Fauna::Resource.find('databases/self')
|
30
21
|
assert_equal "databases/fauna-ruby-test", database.ref
|
data/test/set_test.rb
CHANGED
@@ -34,7 +34,7 @@ class SetTest < MiniTest::Unit::TestCase
|
|
34
34
|
assert_equal 2, page4.refs.size
|
35
35
|
page5 = @posts.page(:size => 2, :after => page4.after)
|
36
36
|
assert_equal 2, page5.refs.size
|
37
|
-
page6 = @posts.page(:size => 2, :after => page5.
|
37
|
+
page6 = @posts.page(:size => 2, :after => page5.after)
|
38
38
|
assert_equal 1, page6.refs.size
|
39
39
|
end
|
40
40
|
|
data/test/test_helper.rb
CHANGED
@@ -7,36 +7,37 @@ require "fauna"
|
|
7
7
|
require "securerandom"
|
8
8
|
require "mocha/setup"
|
9
9
|
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
FAUNA_ROOTKEY = ENV["FAUNA_ROOTKEY"]
|
11
|
+
FAUNA_DOMAIN = ENV["FAUNA_DOMAIN"]
|
12
|
+
FAUNA_SCHEME = ENV["FAUNA_SCHEME"]
|
13
|
+
FAUNA_PORT = ENV["FAUNA_PORT"]
|
13
14
|
|
14
|
-
if !(
|
15
|
-
raise "
|
15
|
+
if !(FAUNA_ROOTKEY && FAUNA_DOMAIN && FAUNA_SCHEME && FAUNA_PORT)
|
16
|
+
raise "FAUNA_ROOTKEY, FAUNA_DOMAIN, FAUNA_SCHEME and FAUNA_PORT must be defined in your environment to run tests."
|
16
17
|
end
|
17
18
|
|
18
|
-
ROOT_CONNECTION = Fauna::Connection.new(:secret =>
|
19
|
+
ROOT_CONNECTION = Fauna::Connection.new(:secret => FAUNA_ROOTKEY, :domain => FAUNA_DOMAIN, :scheme => FAUNA_SCHEME, :port => FAUNA_PORT)
|
19
20
|
|
20
21
|
Fauna::Client.context(ROOT_CONNECTION) do
|
21
|
-
Fauna::
|
22
|
-
Fauna::
|
22
|
+
Fauna::Resource.new('databases', :name => "fauna-ruby-test").delete rescue nil
|
23
|
+
Fauna::Resource.create 'databases', :name => "fauna-ruby-test"
|
23
24
|
|
24
|
-
server_key = Fauna::
|
25
|
-
client_key = Fauna::
|
25
|
+
server_key = Fauna::Resource.create 'keys', :database => "databases/fauna-ruby-test", :role => "server"
|
26
|
+
client_key = Fauna::Resource.create 'keys', :database => "databases/fauna-ruby-test", :role => "client"
|
26
27
|
|
27
|
-
SERVER_CONNECTION = Fauna::Connection.new(:secret => server_key.secret, :domain =>
|
28
|
-
CLIENT_CONNECTION = Fauna::Connection.new(:secret => client_key.secret, :domain =>
|
28
|
+
SERVER_CONNECTION = Fauna::Connection.new(:secret => server_key.secret, :domain => FAUNA_DOMAIN, :scheme => FAUNA_SCHEME, :port => FAUNA_PORT)
|
29
|
+
CLIENT_CONNECTION = Fauna::Connection.new(:secret => client_key.secret, :domain => FAUNA_DOMAIN, :scheme => FAUNA_SCHEME, :port => FAUNA_PORT)
|
29
30
|
end
|
30
31
|
|
31
32
|
# fixtures
|
32
33
|
|
33
34
|
Fauna::Client.context(SERVER_CONNECTION) do
|
34
|
-
Fauna::
|
35
|
-
Fauna::
|
36
|
-
Fauna::
|
37
|
-
Fauna::
|
38
|
-
Fauna::
|
39
|
-
Fauna::
|
35
|
+
Fauna::Resource.create 'classes', :name => 'pigs'
|
36
|
+
Fauna::Resource.create 'classes', :name => 'pigkeepers'
|
37
|
+
Fauna::Resource.create 'classes', :name => 'visions'
|
38
|
+
Fauna::Resource.create 'classes', :name => 'message_boards'
|
39
|
+
Fauna::Resource.create 'classes', :name => 'posts'
|
40
|
+
Fauna::Resource.create 'classes', :name => 'comments'
|
40
41
|
end
|
41
42
|
|
42
43
|
# test harness
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fauna
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-08-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rest-client
|
@@ -103,7 +103,7 @@ extra_rdoc_files:
|
|
103
103
|
- lib/fauna/cache.rb
|
104
104
|
- lib/fauna/client.rb
|
105
105
|
- lib/fauna/connection.rb
|
106
|
-
- lib/fauna/
|
106
|
+
- lib/fauna/named_resource.rb
|
107
107
|
- lib/fauna/rails.rb
|
108
108
|
- lib/fauna/resource.rb
|
109
109
|
- lib/fauna/set.rb
|
@@ -116,13 +116,12 @@ files:
|
|
116
116
|
- Manifest
|
117
117
|
- README.md
|
118
118
|
- Rakefile
|
119
|
-
- examples/welcome.rb
|
120
119
|
- fauna.gemspec
|
121
120
|
- lib/fauna.rb
|
122
121
|
- lib/fauna/cache.rb
|
123
122
|
- lib/fauna/client.rb
|
124
123
|
- lib/fauna/connection.rb
|
125
|
-
- lib/fauna/
|
124
|
+
- lib/fauna/named_resource.rb
|
126
125
|
- lib/fauna/rails.rb
|
127
126
|
- lib/fauna/resource.rb
|
128
127
|
- lib/fauna/set.rb
|
data/examples/welcome.rb
DELETED
@@ -1,73 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# Ruby 1.9 required
|
3
|
-
|
4
|
-
require "rubygems"
|
5
|
-
require "pp"
|
6
|
-
begin
|
7
|
-
require "fauna"
|
8
|
-
rescue LoadError
|
9
|
-
puts "Please run: sudo gem install fauna"
|
10
|
-
exit!
|
11
|
-
end
|
12
|
-
|
13
|
-
print "Email: "
|
14
|
-
email = gets.chomp
|
15
|
-
|
16
|
-
print "Password: "
|
17
|
-
pass = gets.chomp
|
18
|
-
|
19
|
-
puts "\nConnected to Fauna Cloud Platform."
|
20
|
-
|
21
|
-
puts "\nCreating a server key:"
|
22
|
-
root = Fauna::Connection.new(email: email, password: pass)
|
23
|
-
key = root.post("keys", "role" => "server")['resource']['key']
|
24
|
-
$fauna = Fauna::Connection.new(server_key: key)
|
25
|
-
pp key
|
26
|
-
|
27
|
-
puts "\nCreating classes:"
|
28
|
-
class User < Fauna::User
|
29
|
-
pp self
|
30
|
-
end
|
31
|
-
|
32
|
-
class Spell < Fauna::Class
|
33
|
-
pp self
|
34
|
-
end
|
35
|
-
|
36
|
-
puts "\nCreating an event set."
|
37
|
-
Fauna.schema do
|
38
|
-
with User do
|
39
|
-
event_set :spellbook
|
40
|
-
end
|
41
|
-
|
42
|
-
with Spell
|
43
|
-
end
|
44
|
-
|
45
|
-
Fauna::Client.context($fauna) do
|
46
|
-
puts "\nMigrating."
|
47
|
-
Fauna.migrate_schema!
|
48
|
-
|
49
|
-
puts "\nCreating a user:"
|
50
|
-
user = User.create!(
|
51
|
-
email: "#{object_id}@example.com",
|
52
|
-
password: "1234",
|
53
|
-
data: {
|
54
|
-
name: "Taran",
|
55
|
-
profession: "Pigkeeper",
|
56
|
-
location: "Caer Dallben"
|
57
|
-
})
|
58
|
-
pp user.struct
|
59
|
-
|
60
|
-
puts "\nCreating an instance:"
|
61
|
-
spell = Spell.create!(
|
62
|
-
data: {
|
63
|
-
pronouncement: "Draw Dyrnwyn only thou of royal blood.",
|
64
|
-
title: "Protector of Dyrnwyn"
|
65
|
-
})
|
66
|
-
pp spell.struct
|
67
|
-
|
68
|
-
puts "\nAdding the instance to the user's event set."
|
69
|
-
user.spellbook.add(spell)
|
70
|
-
|
71
|
-
puts "\nFetching the event set:"
|
72
|
-
pp user.spellbook.page.struct
|
73
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
module Fauna
|
2
|
-
class NamedResource < Fauna::Resource
|
3
|
-
def name; struct['name'] end
|
4
|
-
|
5
|
-
def ref; super || "#{fauna_class}/#{name}" end
|
6
|
-
|
7
|
-
private
|
8
|
-
|
9
|
-
def post
|
10
|
-
raise Invalid, "Cannot POST to named resource."
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
class Database < Fauna::NamedResource
|
15
|
-
def self.new(*args); super('databases', *args) end
|
16
|
-
end
|
17
|
-
|
18
|
-
class Class < Fauna::NamedResource
|
19
|
-
def self.new(*args); super('classes', *args) end
|
20
|
-
end
|
21
|
-
|
22
|
-
class Key < Fauna::Resource
|
23
|
-
def self.new(*args); super('keys', *args) end
|
24
|
-
|
25
|
-
def database
|
26
|
-
struct['database'] || ref.split('/keys').first
|
27
|
-
end
|
28
|
-
|
29
|
-
private
|
30
|
-
|
31
|
-
def post
|
32
|
-
Fauna::Client.post("#{database}/keys", struct)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class Token < Fauna::Resource
|
37
|
-
def self.new(*args); super('tokens', *args) end
|
38
|
-
end
|
39
|
-
end
|