Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

173 lines (129 sloc) 7.17 KB



  • ActiveSupport/Rails 3.2 compatibility (Alexander Lang)
  • removed Object#try, String#blank? as they are part of ActiveSupport - ActiveSupport's try behaves differently than the couch potato implementation so this change might break your app (now calling a non-existant method on a non-nil raises a NoMethodError, before it did not) (Alexander Lang)
  • bulk document loading (Matthias Jakel)
  • multi db support (Peter Schröder)
  • hash-style access to attributes (Peter Schröder)
  • support for properties of type Array, e.g. :type => User
  • improve compatibility with state_machine (Alexander Lang)
  • allow false as default value for properties (Matthias Jakel)
  • support for Erlang views (Alexander Lang)
  • don't crash, only warn if couchdb.yml is missing (Alexander Lang)
  • use the therubyracer gem to run view specs instead of relying on a js executable (Alexander Lang)


  • ActiveSupport/Rails 3.1 compatibility (Maximilian Mack)
  • fix no such file to load with json/add/rails (Simone Carletti)


  • support CouchPotato::Database#first/#first! calls when using stub_db from tests (langalex)
  • support RSpec2 block syntax in stub_db (langalex)


  • remove the stale parameter from a view query if it's nil, as couchdb only allows stale to be ok or update_after (langalex)


  • support for split_design_documents_per_view (jweiss)
  • errors now returns a Hash instead of an Array (bterkuile)
  • support passing in list names as symbols in view specs (langalex)


  • cast 'false' to false for boolean properties (langalex)


  • added CouchPotato::Database.load! (langalex)


  • added CouchPotato::Database#first and #first! methods (langalex)
  • added workaround for BigCouch/Cloudant to not add null reduce functions to views (langalex)
  • don't add _attachments if there are none (langalex)


  • fixed issues with tzinfo gem (Bernd Ahlers)


  • time zone support (Time properties are now converted to current (langalex)
  • lazy property initialization (performance!) (langalex)
  • active_model is now the default validation framework (langalex)


  • ruby 1.9.2 compatibility (langalex)
  • couch potato objects now behave correctly when used as keys in Hashes (langalex)
  • use as_json instead of to_s(:json), which is the rails way
  • use ActiveModel dirty tracking (langalex) - this means no more "deep tracking", e.g. user.tags << 'new_tag'; user.dirty? # false


  • support yielding to blocks on #initialize (martinrehfeld)
  • support for negative numbers in Fixnum/Float properties (langalex)


  • ActiveModel callbacks (kazjote)
  • do not use Rails.env in initializer as it will free Rails.env for all times and in Rails 2.3.x apps it will be called too early thus always beeing development (jweiss)
  • ruby 1.9.2 compatibility (langalex)
  • can configure validation framework in couchdb.yml, process couchdb.yml with erb (langalex)


  • support for lists (langalex)


  • added persisted? and to_key for proper ActiveModel compliance (thilo)
  • id setter (jhohertz-work)
  • load document ids if include_documents is false (jweiss)
  • persist given created_at/updated_at instead of (langalex)


  • Removed requirement for validatable gem. Allows for using more uptodate versions of the library, or doesn't install it when you're using ActiveModel. (mattmatt)
  • fixed callbacks of super classes were not run (langalex)


  • pass in multiple keys when querying a view (langalex)


  • nicer inspect() for models (mattmatt)
  • fixed (re)reduce for property views wasn't working (langalex)


  • fixed reloading nested classes (langalex)
  • fixed constant missing error when loading models with uninitialized classes via views (langalex)
  • added rspec helpers for stubbing out views (langalex)
  • fixed design document names for nested model classes (svenfuchs)


  • workaround for Rails apps using bundler: database name was not initialized from couchdb.yml (langalex)


  • added to_s(:json) to Date and Time to be able to get properly formatted dates/times for searching with dates/times (langalex)
  • all times are now stored as UTC (langalex)
  • added support for Float attributes (arbovm)


  • automatic view updates: when you change the definition of a view couch potato will now update the design document in the database (langalex)
  • support for properties of type Date, better support for Time (langalex)
  • support for default reduce count methods in custom views (jweiss)


  • persistent instances can now be marked as dirty with #is_dirty (langalex)



  • fixed properties with default values returned default when a blank value like '' or [] was set (langalex)


  • automatically set a database instance on results of CouchPotato::Database#view (langalex)
  • improved auto loading of unloaded constants - can now load constants that have never been loaded before (langalex)
  • raise exception on invalid parameters passed to a couchdb view query (langalex)
  • when querying a view: pass in ranges as key instead of startkey/endkey, pass in plain value instead of hash with key (langalex)


  • support for :boolean properties (jweiss)
  • return the total_rows when querying a view (langalex)


  • added conditions to views (langalex)


  • set Fixnum property to nil when given a blank string (langalex)


  • fixed nil attributes were omitted in json (jweiss, mattmatt)
  • support for properties of type Fixnum (langalex)


  • fixed problem with classes being not loaded in rails development mode (langalex)
  • fixed persist boolean false value (bernd)


  • ability to change the name of the attribute that stores the ruby class in the documents by setting JSON.create_id (lennart)
  • fixed double loading issue with bundler (jweiss)
  • fixed an issue with setting attachments (endor)


  • support adding errors in before_validation callbacks (mattmatt)
  • support for inheritance (mattmatt)
  • support for save without validations (mattmatt)
  • improved (de)serialization now supports deserializing nested objects (railsbros, specs by hagenburger)
  • RSpec matchers for testing map/reduce functions (langalex)


  • fixed bug with hardcoded timezone


  • allow to overwrite attribute accessor of properties and use super to call the original accessors
  • allow read access to attributes that are present in the Couchdb document but not defined as properties
  • support default values for properties via the :default parameter
  • support attachments via the _attachments property
  • support for namespaces models
  • removed belongs_to macro for now
  • removed CouchPotato::Config.database_server, just set CouchPotato::Config.database_name to the full url if you are not using localhost:5984
  • Ruby 1.9 was broken and is now working again
Jump to Line
Something went wrong with that request. Please try again.