ShyCouch 0.2.0 → 0.3.0
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/ShyCouch.gemspec +1 -1
- data/VERSION +1 -1
- data/lib/ShyCouch.rb +29 -21
- data/lib/ShyCouch/data.rb +1 -1
- data/test/test_couch_document.rb +9 -8
- data/test/test_couchdb_api.rb +1 -1
- data/test/test_couchdb_factory.rb +1 -1
- metadata +16 -16
data/ShyCouch.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ShyCouch}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.3.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = [%q{Shy Inc.}, %q{Daniel Bryan}, %q{Cerales}]
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.3.0
|
data/lib/ShyCouch.rb
CHANGED
@@ -15,29 +15,23 @@ require 'shyrubyjs'
|
|
15
15
|
# require everything from the 'ShyCouch' subdirectory
|
16
16
|
Dir.new(File.dirname(__FILE__)+'/ShyCouch').each { |f| require 'shycouch/' + f.split('.')[0] unless f == '.' or f == '..' }
|
17
17
|
|
18
|
-
module Kernel
|
19
|
-
def shycouch
|
20
|
-
$database = ShyCouch::Connection.Create
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
module Camping
|
27
|
-
module Models
|
28
|
-
CouchDocument = ShyCouch::Data::CouchDocument
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
18
|
|
33
19
|
module ShyCouch
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
20
|
+
class << self
|
21
|
+
def goes(m)
|
22
|
+
Camping.goes m
|
23
|
+
c = %{
|
24
|
+
#{m.to_s}::Models::CouchDocument = ShyCouch::Data::CouchDocument
|
25
|
+
}
|
26
|
+
eval(c)
|
27
|
+
ShyCouch.create
|
28
|
+
end
|
29
|
+
|
30
|
+
def create(settings=nil)
|
31
|
+
$couchdb = ShyCouch.getDB(settings)
|
32
|
+
end
|
33
|
+
|
34
|
+
def getDB(settings=nil)
|
41
35
|
settings = $settings unless settings
|
42
36
|
database = CouchDBAPI.new(settings["db"]["host"], settings["db"]["port"], settings["db"]["name"], settings["db"]["user"], settings["db"]["password"])
|
43
37
|
puts database.connect unless database.connect["ok"]
|
@@ -45,6 +39,20 @@ module ShyCouch
|
|
45
39
|
return database
|
46
40
|
end
|
47
41
|
|
42
|
+
end
|
43
|
+
attr_accessor :database
|
44
|
+
|
45
|
+
class Connection
|
46
|
+
# Test that the database is accessible and give back a CouchDBAPI object if so.
|
47
|
+
# Doesn't actually gets instantiated - is just here to allow nice ShyCouch::Connection.Create syntax
|
48
|
+
# def self.Create(settings=nil)
|
49
|
+
# settings = $settings unless settings
|
50
|
+
# database = CouchDBAPI.new(settings["db"]["host"], settings["db"]["port"], settings["db"]["name"], settings["db"]["user"], settings["db"]["password"])
|
51
|
+
# puts database.connect unless database.connect["ok"]
|
52
|
+
# database.create unless database.on_server?
|
53
|
+
# return database
|
54
|
+
# end
|
55
|
+
|
48
56
|
def push_generic_views
|
49
57
|
#TODO
|
50
58
|
end
|
data/lib/ShyCouch/data.rb
CHANGED
@@ -63,7 +63,7 @@ module ShyCouch
|
|
63
63
|
|
64
64
|
def push(database = nil)
|
65
65
|
# assumes $database unless it receives a database argument
|
66
|
-
database = $
|
66
|
+
database = $couchdb unless database
|
67
67
|
res = database.push_document(self)
|
68
68
|
self["_id"] = res["id"]
|
69
69
|
self["_rev"] = res["rev"]
|
data/test/test_couch_document.rb
CHANGED
@@ -6,11 +6,11 @@ class CouchDocumentTests# < Test::Unit::TestCase
|
|
6
6
|
class TestDocumentCreation < Test::Unit::TestCase
|
7
7
|
def setup
|
8
8
|
valid_settings = $settings
|
9
|
-
@
|
9
|
+
@couchdb = ShyCouch.create(valid_settings)
|
10
10
|
end
|
11
11
|
def teardown
|
12
|
-
@
|
13
|
-
@
|
12
|
+
@couchdb.delete_database
|
13
|
+
@couchdb = nil
|
14
14
|
end
|
15
15
|
|
16
16
|
def test_create_from_empty_hash
|
@@ -53,7 +53,8 @@ class CouchDocumentTests# < Test::Unit::TestCase
|
|
53
53
|
# assumes success of the stuff in TestDocumentPulling
|
54
54
|
def setup
|
55
55
|
valid_settings = $settings
|
56
|
-
$
|
56
|
+
$couchdb = ShyCouch.create(valid_settings)
|
57
|
+
|
57
58
|
|
58
59
|
@valid_documents = [
|
59
60
|
ShyCouch::Data::CouchDocument.new({"kind"=>"post", "message"=>"BUY TRAMADOL ONLINE!!"}),
|
@@ -73,8 +74,8 @@ class CouchDocumentTests# < Test::Unit::TestCase
|
|
73
74
|
@invalid_documents = nil # make sure user can't set rev maybe? or is that legal?
|
74
75
|
end
|
75
76
|
def teardown
|
76
|
-
$
|
77
|
-
$
|
77
|
+
$couchdb.delete_database
|
78
|
+
$couchdb = nil
|
78
79
|
# delete the database
|
79
80
|
end
|
80
81
|
|
@@ -97,7 +98,7 @@ class CouchDocumentTests# < Test::Unit::TestCase
|
|
97
98
|
assert(doc["_id"])
|
98
99
|
assert(doc["_rev"])
|
99
100
|
# get the new doc
|
100
|
-
newDoc = $
|
101
|
+
newDoc = $couchdb.get_document(doc._id)
|
101
102
|
# test equality of all the attributes aside from id and rev on the new document
|
102
103
|
doc.attr_keys.each { |k|
|
103
104
|
assert_equal(doc["k"], newDoc["k"])
|
@@ -119,7 +120,7 @@ class CouchDocumentTests# < Test::Unit::TestCase
|
|
119
120
|
assert(res["ok"])
|
120
121
|
|
121
122
|
# pull it from the database again
|
122
|
-
checkDoc = $
|
123
|
+
checkDoc = $couchdb.get_document(doc._id)
|
123
124
|
|
124
125
|
# check that the one from the database has all the new attributes
|
125
126
|
assert_equal(doc.owner, checkDoc.owner)
|
data/test/test_couchdb_api.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ShyCouch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -15,7 +15,7 @@ date: 2011-08-20 00:00:00.000000000Z
|
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: bundler
|
18
|
-
requirement: &
|
18
|
+
requirement: &70094608804280 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,10 +23,10 @@ dependencies:
|
|
23
23
|
version: 1.0.0
|
24
24
|
type: :development
|
25
25
|
prerelease: false
|
26
|
-
version_requirements: *
|
26
|
+
version_requirements: *70094608804280
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: jeweler
|
29
|
-
requirement: &
|
29
|
+
requirement: &70094608801900 !ruby/object:Gem::Requirement
|
30
30
|
none: false
|
31
31
|
requirements:
|
32
32
|
- - ~>
|
@@ -34,10 +34,10 @@ dependencies:
|
|
34
34
|
version: 1.6.4
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
|
-
version_requirements: *
|
37
|
+
version_requirements: *70094608801900
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
39
|
name: rcov
|
40
|
-
requirement: &
|
40
|
+
requirement: &70094608799800 !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
43
|
- - ! '>='
|
@@ -45,10 +45,10 @@ dependencies:
|
|
45
45
|
version: '0'
|
46
46
|
type: :development
|
47
47
|
prerelease: false
|
48
|
-
version_requirements: *
|
48
|
+
version_requirements: *70094608799800
|
49
49
|
- !ruby/object:Gem::Dependency
|
50
50
|
name: sourcify
|
51
|
-
requirement: &
|
51
|
+
requirement: &70094608797500 !ruby/object:Gem::Requirement
|
52
52
|
none: false
|
53
53
|
requirements:
|
54
54
|
- - ~>
|
@@ -56,10 +56,10 @@ dependencies:
|
|
56
56
|
version: 0.5.0
|
57
57
|
type: :development
|
58
58
|
prerelease: false
|
59
|
-
version_requirements: *
|
59
|
+
version_requirements: *70094608797500
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
61
|
name: ShyRubyJS
|
62
|
-
requirement: &
|
62
|
+
requirement: &70094608795700 !ruby/object:Gem::Requirement
|
63
63
|
none: false
|
64
64
|
requirements:
|
65
65
|
- - ! '>='
|
@@ -67,10 +67,10 @@ dependencies:
|
|
67
67
|
version: '0'
|
68
68
|
type: :development
|
69
69
|
prerelease: false
|
70
|
-
version_requirements: *
|
70
|
+
version_requirements: *70094608795700
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: ShyRubyJS
|
73
|
-
requirement: &
|
73
|
+
requirement: &70094608794440 !ruby/object:Gem::Requirement
|
74
74
|
none: false
|
75
75
|
requirements:
|
76
76
|
- - ! '>='
|
@@ -78,10 +78,10 @@ dependencies:
|
|
78
78
|
version: '0'
|
79
79
|
type: :runtime
|
80
80
|
prerelease: false
|
81
|
-
version_requirements: *
|
81
|
+
version_requirements: *70094608794440
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
83
|
name: sourcify
|
84
|
-
requirement: &
|
84
|
+
requirement: &70094608793120 !ruby/object:Gem::Requirement
|
85
85
|
none: false
|
86
86
|
requirements:
|
87
87
|
- - ! '>='
|
@@ -89,7 +89,7 @@ dependencies:
|
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
|
-
version_requirements: *
|
92
|
+
version_requirements: *70094608793120
|
93
93
|
description: Ruby API for CouchDB, designed to work with the Camping micro-framework.
|
94
94
|
email: danbryan@gmail.com
|
95
95
|
executables: []
|
@@ -134,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
134
134
|
version: '0'
|
135
135
|
segments:
|
136
136
|
- 0
|
137
|
-
hash:
|
137
|
+
hash: -2635305617772024091
|
138
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
139
139
|
none: false
|
140
140
|
requirements:
|