lib/picky/sources/couch.rb in picky-1.5.2 vs lib/picky/sources/couch.rb in picky-1.5.3

- old
+ new

@@ -1,14 +1,14 @@ module Sources - + # Raised when a Couch source is instantiated without a file. # # Example: # Sources::Couch.new(:column1, :column2) # without file option # class NoCouchDBGiven < StandardError; end - + # A Couch database source. # # Options: # * url # and all the options of a <tt>RestClient::Resource</tt>. @@ -17,32 +17,36 @@ # 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 - + # # def initialize *category_names, options check_gem - + Hash === options && options[:url] || raise_no_db_given(category_names) @db = RestClient::Resource.new options.delete(:url), options end - - # Default key format method for couch DB is to_sym. + + def to_s + self.class.name + end + + # Default key format method for couch DB is to_sym. # def key_format :to_sym end - + # Tries to require the rest_client gem. # def check_gem # :nodoc: require 'rest_client' rescue LoadError - puts_gem_missing 'rest-client', 'the CouchDB source' + warn_gem_missing 'rest-client', 'the CouchDB source' exit 1 end # Harvests the data to index. # @@ -53,17 +57,17 @@ 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 NoCouchDBGiven.new(category_names.join(', ')) end end end