- Fix
hash_many :through
associations which specify a scope. #306 @sontixyou
Version 3.3.0 - 2024-04-30
- Ruby 3.3 support #298 @m-nakamura145
- Support
has_many :through
associations #296 @flavorjones - Rails 7.1 support #291 @y-yagi
- Rails 7.1: fix sqlite3 issue #303 @flavorjones
- Rails 7.1.3: add missing
has_query_constraints?
#300 @flavorjones Array#pluck
supports methods #299 @iberianpig- Prefer
safe_constantize
overconstantize
#297 @flavorjones - Treat
nil
andblank?
as different values #295 @kbrock - Fix
#where
for string keys #292 @usernam3
Version 3.2.1 - 2023-08-31
- Improve
pp
output forActiveHash::Relation
. #288 @flavorjones
- Fix relation matching when attribute name collides with a method. #281 @flavorjones
- Fix association reflection in applications that don't use ActiveHash::Associations. #286 @iberianpig
- Fix
ActiveHash::Relation#method_missing
and#respond_to_missing?
without scopes. #278 @julianrubisch
Version 3.2.0 - 2023-05-06
- Add Ruby 3.2 to the CI matrix #275 @petergoldstein
- Handle default value of
false
#274 @ihollander - Run CI only one time per commit #273 @flavorjones
- Rails 7 support #272 @flavorjones
- Avoid interfere with AR's belongs_to arguments. #270 @koyo-miyamura
- Fix broken #pluck method with 3+ attrs specified #269 @h6ah4i
- Fix relations for Rails 7 support, and not modifying conditions #268 @pfeiffer
- docs: Remove the string 'F' #264 @tbotaq
- Show example using regex in where query #263 @scottharvey
- Improve performance of exists? #262 @ise-tang
- Remove redundant ActiveRecord version check #260 @yujideveloper
- Fix deprecation warnings #259 @yujideveloper
- Fix rspec config when SKIP_ACTIVE_RECORD enabled #258 @yujideveloper
- isolate tests with temporary classes #256 @machisuke
- Avoid ActiveRecordExtensions affects AR's belongs_to method. #255 @machisuke
- add option to disable erb parsing #202 @reedlaw
- add collection singular ids for associations #237 @1160054
- Fix the thread-safe spec for the updated cities fixture @adampal
- Add thread-safety to ActiveFile #229 @dmitriy-kiriyenko
Version 3.1.1 - 2022-07-14
- Make scopes chainable #248 @andreynering
- Set default key attributes #251 @adampal
- Migrate from Travis to GitHub Actions for CI @kbrock
- Add primary_key support for has_one #218 @yujideveloper
- Return a chainable relation when using .not #205 @pfeiffer
- Correct fields with YAML aliases in array style #226 @stomk
- Add ActiveHash::Relation#size method for compatibily #227 @sluceno
- Implement ActiveRecord::RecordNotFound interface #207 @ChrisBr
- Fix find_by_id with filter chain #210 @ChrisBr
- Suppress Ruby 2.7 kwargs warnings #206 @yhirano55
- Call reload if @records is not defined #208 @jonmagic
- Switch to rspec3 (and update the Gemfile) #209 @djberg96
- Implement filter by RegEx #211 @ChrisBr
- Supports .pick method #195 @yhirano55
- Lots of other small performance improvements, documentation and testing. Thanks to everyone who contributed!
Version 3.1.0 - 2020-01-15
- Add ActiveHash::Base.order method inspired by ActiveRecord #177
- Add #to_ary to ActiveHash::Relation #182
- Allow #find to behave like Enumerable#find if id is nil and a block is given #183
- Delegate :sample to
records
#189
Version 3.0.0 - 2019-09-28
- Make #where chainable #178
Version 2.3.0 - 2019-09-28
- Add ::scope method (inspired by ActiveRecord) #173
- Let
.find(nil)
raise ActiveHash::RecordNotFound (inspired by ActiveRecord) #174 where
clause now works with range argument #175
Version 2.2.1 - 2019-03-06
- Allow empty YAML #171 Thanks, @ppworks
Version 2.2.0 - 2018-11-22
Version 2.1.0 - 2018-04-05
- Allow to use ERB (embedded ruby) in yml files #160 Thanks, @UgoMare
- Add
ActiveHash::Base.polymorphic_name
#162 - Fix to be able to use enum accessor constant with same name as top-level constant#161 Thanks, @yujideveloper
Version 2.0.0 - 2018-02-27
- Drop old Ruby and Rails support #157
- Don't generate instance accessors for class attributes #136 Thanks, @rainhead
Version 1.5.3 - 2017-06-14
- Support symbol values in where and find_by #156 Thanks, @south37
Version 1.5.2 - 2017-06-14
- Fix find_by when passed an invalid id #152 Thanks, @davidstosik
Version 1.5.1 - 2017-04-20
- Fix a bug on
.where
#147
Version 1.5.0 - 2017-03-24
- add support for
.find_by!
(@syguer)
Version 1.4.1 - 2015-09-13
- fix bug where
#attributes
didn't contain default values #107 - add support for
.find_by
and#_read_attribute
. Thanks, @andrewfader
Version 1.4.0 - 2014-09-03
- support Rails 4.2 @agraves, @al2o3cr
Version 1.3.0 - 2014-02-18
- fix bug where including ActiveHash associations would make
belongs_to :imageable, polymorphic: true
blow up - fixed several bugs that prevented active hash from being used without active record / active model
- add support for splitting up data sources into multiple files @rheaton
- add support for storing data in json files @rheaton
Version 1.2.3 - 2013-11-29
- fix bug where active hash would call
.all
on models when setting has_many @grosser
Version 1.2.2 - 2013-11-05
- fix bug in gemspec that made it impossible to use w/ Rails 4
Version 1.2.1 - 2013-10-24
- fixed nasty bug in belongs_to that would prevent users from passing procs @freebird0221
- fixed bug where passing in a separate class name to belongs_to_active_hash would raise an exception @mauriciopasquier
Version 1.2.0 - 2013-10-01
- belongs_to is back!
- added support for primary key options for belongs_to @tomtaylor
Version 1.0.2 - 2013-09-09
where(nil)
returns all results, like ActiveRecord @kugaevsky
Version 1.0.1 - 2013-07-15
- Travis CI for ActiveHash + Ruby 2, 1.8.7, Rubinius and JRuby support @mattheworiordan
- no longer need to call .all before executing
find_by_*
orwhere
methods @mattheworiordan
Version 1.0.0 - 2013-06-24
- save is a no-op on existing records, instead of raising an error (issue #63)
Version 0.10.0 - 2013-06-24
- added ActiveYaml::Aliases module so you can DRY up your repetitive yaml @brett-richardson
Version 0.9.14 - 2013-05-23
- enum_accessor can now take multiple field names when generating the constant
- temporarily disabled rails edge specs since there's an appraisal issue with minitest
Version 0.9.13 2013-01-22
- Fix find_by_id and find method returning nil unless .all called in ActiveYaml @mattheworiordan
Version 0.9.12 2012-07-25
- Make find_by_id lookups faster by indexing records by id @desmondmonster
Version 0.9.11 2012-07-16
- Validate IDs are unique by caching them in a set @desmondmonster
Version 0.9.10 2012-04-14
- Support for has_one associations @kbrock
Version 0.9.9 2012-04-05
- Allow gems like simple_form to read metadata about belongs_to associations that point to active hash objects @kbrock
- Move specs to appraisal @flavorjones
Version 0.9.8 - 2012-01-18
- Make ActiveHash.find with array raise an exception when record cannot be found @mocoso
Version 0.9.7 - 2011-09-18
- Fixing the setting of a
belongs_to_active_hash
association by association (not id).
Version 0.9.6 - 2011-08-31
- added a module which adds a .belongs_to_active_hash method to ActiveRecord, since it was broken for Rails 3.1 @felixclack
Version 0.9.5 - 2011-06-07
- fixed bug where .find would not work if you defined your ids as strings
Version 0.9.4 - 2011-06-05
- fixed deprecation warnings for class_inheritable_accessor @scudco
- added basic compatibility with the
where
method from Arel @rgarver
Version 0.9.3 - 2011-04-19
- better dependency management and compatibility with ActiveSupport 2.x @vandrijevik
Version 0.9.2 - 2011-01-22
- improved method_missing errors for dynamic finders
- prevent users from trying to overwrite :attributes #33
Version 0.9.1 2010-12-08
- ruby 1.9.2 compatibility
Version 0.9.0 2010-12-06
- added dependency on ActiveModel
- add persisted? method to ActiveHash::Base
- ActiveHash::Base#save takes *args to be compatible with ActiveModel
- ActiveHash::Base#to_param returns nil if the object hasn't been saved
Version 0.8.7 2010-11-09
- Use Ruby's definition of "word character" (numbers, underscores) when forming ActiveHash::Enum constants @tstuart
Version 0.8.6 2010-11-07
- Get ActiveHash::Associations to return a scope for has_many active record relationships @mocoso
Version 0.8.5 2010-10-20
- Allow find_by_* methods to accept an options hash, so rails associations don't blow up
Version 0.8.4 2010-10-07
- Add conditions to ActiveHash#all (Ryan Garver)
- Add #cache_key to ActiveHash::Base (Tom Stuart)
- Add banged dynamic finder support to ActiveHash::Base (Tom Stuart)
Version 0.8.3 2010-09-16
- Enum format now uses underscores instead of removing all characters
- Removed test dependency on acts_as_fu
Version 0.8.2 2010-05-26
- Silence metaclass deprecation warnings in active support 2.3.8
Version 0.8.1 2010-05-04
- When calling ActiveFile::Base.reload do not actually perform the reload if nothing has been modified unless you call reload(true) to force (Michael Schubert)
Version 0.8.0 2010-04-25
- When ActiveRecord model belongs_to an ActiveHash and the associated id is nil, returns nil instead of raising RecordNotFound (Jeremy Weiskotten)
- Merged Nakajima's "add" alias for "create" - gotta save those ASCII characters :)
Version 0.7.9 2010-03-01
- Removed "extend"-related deprecations - they didn't play well with rails class loading
Version 0.7.8 2010-01-18
- Added stub for #destroyed? method, since Rails associations now depend on it
Version 0.7.7 2009-12-19
- Deprecated include ActiveHash::Associations in favor of extend ActiveHash::Associations
Version 0.7.6 2009-12-19
- Added ActiveHash::Enum (John Pignata)
- Fixed bug where you can't set nil to an association
- Calling #belongs_to now creates the underlying field if it's not already there (belongs_to :city will create the :city_id field)
Version 0.7.5 2009-12-10
- Fixed a bug where belongs_to associations would raise an error instead of returning nil when the parent object didn't exist.
- Added #[] and #[]= accessors for more ActiveRecord-esque-ness. (Pat Nakajima & Dave Yeu)
Version 0.7.4 2009-12-01
- Add marked_for_destruction? to be compatible with nested attributes (Brandon Keene)
- Added second parameter to respond_to? and cleaned up specs (Brian Takita)
- Find with an id that does not exist now raises a RecordNotFound exception to mimic ActiveRecord (Pat Nakajima)
Version 0.7.3 2009-10-22
- added setters to ActiveHash::Base for all fields
- instantiating an ActiveHash object with a hash calls the setter methods on the object
- boolean default values now work
Version 0.7.2 2009-10-21
- Removed auto-reloading of files based on mtime - maybe it will come back later
- Made ActiveFile::Base.all a bit more sane
- added ActiveHash::Base.has_many, which works with ActiveRecord or ActiveHash classes @baldwindavid
- added ActiveHash::Base.belongs_to, which works with ActiveRecord or ActiveHash classes @baldwindavid
- added .delete_all method that clears the in-memory array
- added support for Hash-style yaml (think, Rails fixtures)
- added setter for parent object on belongs_to (
city = City.new; city.state = State.first; city.state_id == State.first.id
)
Version 0.7.0 2009-10-12
- auto-assign fields after calling data= instead of after calling .all
- remove require 'rubygems', so folks with non-gem setups can still use AH
- added more specific activesupport dependency to ensure that metaclass is available
- AH no longer calls to_i on ids. If you pass in a string as an id, you'll get a string back
- Fancy finders, such as find_all_by_id_and_name, will compare the to_s values of the fields, so you can pass in strings
- You can now use ActiveHash models as the parents of polymorphic belongs_to associations
- save, save!, create and create! now add items to the in-memory collection, and naively adds autoincrementing id
- new_record? returns false if the record is part of the collection
- ActiveHash now works with Fixjour!
Version 0.6.1 2009-08-19
- Added custom finders for multiple fields, such as .find_all_by_name_and_age
- Added support for auto-defining methods based on hash keys in ActiveHash::Base
- Changed the :field and :fields API so that they don't overwrite existing methods (useful when ActiveHash auto-defines methods)
- Fixed a bug where ActiveFile incorrectly set the root_path to be the path in the gem directory, not the current working directory
- ActiveFile no longer reloads files by default
- Added ActiveFile.reload_active_file= so you can cause ActiveFile to reload
- Setting data to nil correctly causes .all to return an empty array
- Added reload(force) method, so that you can force a reload from files in ActiveFile, useful for tests