slipcover 0.2.0 → 0.2.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.
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