slipcover 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/slipcover/config.rb +1 -1
- data/lib/slipcover/design_document.rb +1 -1
- data/lib/slipcover/query.rb +4 -3
- data/lib/slipcover/version.rb +1 -1
- data/lib/slipcover/wrapper.rb +36 -0
- data/lib/slipcover.rb +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1700b72de77adb9e3d750d709cf48e622eca72fa
|
4
|
+
data.tar.gz: 27b3bd29c99b57c1b7ff7d20c6b842477a6b3152
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 22261b84dcf0c25594abd9397774fa43627c406a2371dc0b5984023e14e78c70f9747a0d8dab7de632c80cb0fa95e066f7a00cf624b3a3ec0ecec8f1674b67c6
|
7
|
+
data.tar.gz: 818308bbb76b5d5b12758a4aca4050bc77d4cb559fd2c16391dd5245c2d0a195107db218ab1f9f452826405b52bf202985b8d4deed90d64335008d30e86a05db
|
data/lib/slipcover/config.rb
CHANGED
@@ -16,7 +16,7 @@ module Slipcover
|
|
16
16
|
def self.rails!
|
17
17
|
self.env = Rails.env
|
18
18
|
self.yaml_path = Rails.root.join('config/slipcover.yml')
|
19
|
-
self.view_dir = Rails.root.join("
|
19
|
+
self.view_dir = Rails.root.join("app", "slipcover_views")
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
@@ -45,7 +45,7 @@ module Slipcover
|
|
45
45
|
def views
|
46
46
|
Dir.entries(view_dir).inject({}) do |hash, path|
|
47
47
|
if !path.match(/\./)
|
48
|
-
dir = view_dir + "/" + path
|
48
|
+
dir = view_dir.to_s + "/" + path
|
49
49
|
hash[path.to_sym] ||= {}
|
50
50
|
hash[path.to_sym][:map] = File.read(dir + "/map.js")
|
51
51
|
hash[path.to_sym][:reduce] = File.read(dir + "/reduce.js") if File.exist?(dir + "/reduce.js")
|
data/lib/slipcover/query.rb
CHANGED
@@ -19,7 +19,10 @@ module Slipcover
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def all(opts={})
|
22
|
-
get(url, repackage(opts))[:rows].map{|row|
|
22
|
+
get(url, repackage(opts))[:rows].map{ |row|
|
23
|
+
doc_data = opts[:include_docs] ? row["doc"] : row
|
24
|
+
Document.new(database.name, doc_data.symbolize_keys)
|
25
|
+
}
|
23
26
|
end
|
24
27
|
|
25
28
|
def repackage(opts)
|
@@ -28,8 +31,6 @@ module Slipcover
|
|
28
31
|
opts.each do |key, value|
|
29
32
|
opts[key] = escape(value) if escape_key?(key)
|
30
33
|
end
|
31
|
-
|
32
|
-
{include_docs: true}.merge(opts)
|
33
34
|
end
|
34
35
|
|
35
36
|
def database
|
data/lib/slipcover/version.rb
CHANGED
@@ -0,0 +1,36 @@
|
|
1
|
+
module Slipcover
|
2
|
+
class Wrapper
|
3
|
+
attr_reader :database_name, :view_name
|
4
|
+
|
5
|
+
def initialize(opts)
|
6
|
+
@database_name = opts[:database_name]
|
7
|
+
@view_name = opts[:view_name]
|
8
|
+
end
|
9
|
+
|
10
|
+
def lookup(opts={})
|
11
|
+
query.all(opts).map(&:attributes)
|
12
|
+
rescue Slipcover::HttpAdapter::DBNotFound
|
13
|
+
database.create
|
14
|
+
retry
|
15
|
+
rescue Slipcover::HttpAdapter::DocumentNotFound # no design document
|
16
|
+
design_document.save
|
17
|
+
retry
|
18
|
+
end
|
19
|
+
|
20
|
+
def query
|
21
|
+
@query ||= Slipcover::Query.new(design_document, view_name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def design_document
|
25
|
+
@design_document ||= Slipcover::DesignDocument.new(database.name, view_name, view_dir)
|
26
|
+
end
|
27
|
+
|
28
|
+
def database
|
29
|
+
@database ||= Slipcover::Database.new("#{database_name}")
|
30
|
+
end
|
31
|
+
|
32
|
+
def view_dir
|
33
|
+
# Defaults to app/slipcover_views, override to change.
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/slipcover.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slipcover
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kane Baccigalupi
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2014-06-
|
14
|
+
date: 2014-06-09 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: rest-client
|
@@ -111,6 +111,7 @@ files:
|
|
111
111
|
- lib/slipcover/tasks.rb
|
112
112
|
- lib/slipcover/tasks/pull.rake
|
113
113
|
- lib/slipcover/version.rb
|
114
|
+
- lib/slipcover/wrapper.rb
|
114
115
|
- slipcover.gemspec
|
115
116
|
- spec/database_spec.rb
|
116
117
|
- spec/design_document_spec.rb
|
@@ -141,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
141
142
|
version: '0'
|
142
143
|
requirements: []
|
143
144
|
rubyforge_project:
|
144
|
-
rubygems_version: 2.2.
|
145
|
+
rubygems_version: 2.2.1
|
145
146
|
signing_key:
|
146
147
|
specification_version: 4
|
147
148
|
summary: Lite wrapper for CouchDB
|