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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e49398586e21e510dbabb4125a7e6be20a2ce675
4
- data.tar.gz: 8caf835e9eb85951484f9d9b1e1ef36c9540d59e
3
+ metadata.gz: 1700b72de77adb9e3d750d709cf48e622eca72fa
4
+ data.tar.gz: 27b3bd29c99b57c1b7ff7d20c6b842477a6b3152
5
5
  SHA512:
6
- metadata.gz: a960e3e93453cd982db2c6195517c1f15ed71b7dc3185d43b748a2f31fbd53c4c2fadeab9431146c3171d56f0705252193a216a0aa4096259c305271d05a9fb4
7
- data.tar.gz: 3ddda15b941a725632490bb1046d0b93b7af34aa99c01c7aea059f544bf54147721e6ea8cccc5db451fdfb9b155b679e68b22dde06ac6e697ed5d026d9642523
6
+ metadata.gz: 22261b84dcf0c25594abd9397774fa43627c406a2371dc0b5984023e14e78c70f9747a0d8dab7de632c80cb0fa95e066f7a00cf624b3a3ec0ecec8f1674b67c6
7
+ data.tar.gz: 818308bbb76b5d5b12758a4aca4050bc77d4cb559fd2c16391dd5245c2d0a195107db218ab1f9f452826405b52bf202985b8d4deed90d64335008d30e86a05db
@@ -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("/app/slipcover_views")
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")
@@ -19,7 +19,10 @@ module Slipcover
19
19
  end
20
20
 
21
21
  def all(opts={})
22
- get(url, repackage(opts))[:rows].map{|row| Document.new(database.name, row['doc'].symbolize_keys) }
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
@@ -1,3 +1,3 @@
1
1
  module Slipcover
2
- VERSION = "0.2.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -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
@@ -7,6 +7,7 @@ require "slipcover/version"
7
7
  require "slipcover/http_adapter"
8
8
  require "slipcover/server"
9
9
  require "slipcover/config"
10
+ require "slipcover/wrapper"
10
11
  require "slipcover/database"
11
12
  require "slipcover/document"
12
13
  require "slipcover/design_document"
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.0
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-04 00:00:00.000000000 Z
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.2
145
+ rubygems_version: 2.2.1
145
146
  signing_key:
146
147
  specification_version: 4
147
148
  summary: Lite wrapper for CouchDB