lib/picky/sources/couch.rb in picky-2.7.0 vs lib/picky/sources/couch.rb in picky-3.0.0.pre1
- old
+ new
@@ -1,72 +1,76 @@
-module Sources
+module Picky
- # Raised when a Couch source is instantiated without a file.
- #
- # Example:
- # Sources::Couch.new(:column1, :column2) # without file option
- #
- class NoCouchDBGiven < StandardError; end
+ module Sources
- # A Couch database source.
- #
- # Options:
- # * url
- # and all the options of a <tt>RestClient::Resource</tt>.
- # See http://github.com/archiloque/rest-client.
- #
- # Examples:
- # Sources::Couch.new(:title, :author, :isbn, url:'localhost:5984')
- # Sources::Couch.new(:title, :author, :isbn, url:'localhost:5984', user:'someuser', password:'somepassword')
- #
- class Couch < Base
-
+ # A Couch database source.
#
+ # Options:
+ # * url
+ # and all the options of a <tt>RestClient::Resource</tt>.
+ # See http://github.com/archiloque/rest-client.
#
- def initialize *category_names, options
- check_gem
+ # Examples:
+ # Picky::Sources::Couch.new(:title, :author, :isbn, url:'localhost:5984')
+ # Picky::Sources::Couch.new(:title, :author, :isbn, url:'localhost:5984', user:'someuser', password:'somepassword')
+ #
+ class Couch < Base
- Hash === options && options[:url] || raise_no_db_given(category_names)
+ # Raised when a Couch source is instantiated without a file.
+ #
+ # Example:
+ # Picky::Sources::Couch.new(:column1, :column2) # without file option
+ #
+ class NoDBGiven < StandardError; end
- @db = RestClient::Resource.new options.delete(:url), options
+ #
+ #
+ def initialize *category_names, options
+ check_gem
- key_format = options.delete :key_format
- @key_format = key_format && key_format.to_sym || :to_sym
- end
+ Hash === options && options[:url] || raise_no_db_given(category_names)
- def to_s
- self.class.name
- end
+ @db = RestClient::Resource.new options.delete(:url), options
- # Tries to require the rest_client gem.
- #
- def check_gem # :nodoc:
- require 'rest_client'
- rescue LoadError
- warn_gem_missing 'rest-client', 'the CouchDB source'
- exit 1
- end
+ key_format = options.delete :key_format
+ @key_format = key_format && key_format.to_sym || :to_sym
+ end
- # Harvests the data to index.
- #
- # See important note, above.
- #
- @@id_key = '_id'
- def harvest category
- category_name = category.from.to_s
- get_data do |doc|
- yield doc[@@id_key], doc[category_name] || next
+ def to_s
+ self.class.name
end
- end
- def get_data &block # :nodoc:
- resp = @db['_all_docs?include_docs=true'].get
- JSON.parse(resp)['rows'].
- map{|row| row['doc']}.
- each &block
- end
+ # Tries to require the rest_client gem.
+ #
+ def check_gem # :nodoc:
+ require 'rest_client'
+ rescue LoadError
+ warn_gem_missing 'rest-client', 'the CouchDB source'
+ exit 1
+ end
- def raise_no_db_given category_names # :nodoc:
- raise NoCouchDBGiven.new(category_names.join(', '))
+ # Harvests the data to index.
+ #
+ # See important note, above.
+ #
+ @@id_key = '_id'
+ def harvest category
+ category_name = category.from.to_s
+ get_data do |doc|
+ yield doc[@@id_key], doc[category_name] || next
+ end
+ end
+
+ def get_data &block # :nodoc:
+ resp = @db['_all_docs?include_docs=true'].get
+ JSON.parse(resp)['rows'].
+ map{|row| row['doc']}.
+ each &block
+ end
+
+ def raise_no_db_given category_names # :nodoc:
+ raise NoDBGiven.new(category_names.join(', '))
+ end
end
end
-end
+
+end
\ No newline at end of file