2.0.2 / 2012-11-18
-
minor enhancements
-
‘attribute_set` class and instance aliases are created if methods named the same aren’t defined yet
-
2.0.1 / 2012-10-04
-
major enhancements
-
Virtual attributes changes tracking improved; the ‘attr_virtual` DSL keyword can be placed anywhere
-
Internal sets refactored, added abstraction layer that utilizes just two class instance variables:
-
‘@attribute_sets` (for keeping sets, attributes map, virtual and semi-real items)
-
‘@attribute_filters` (for keeping filtering methods)
-
-
-
minor enhancements
-
Added conversion methods: AttributeSet#to_hash, AttributeSet#to_attribute_set
-
‘MetaSet` improved, removed grandparent.class.bind(self).call
-
2.0.0 / 2012-10-01
-
major enhancements
-
Operating speed increased by 100%
-
API change:
-
‘AttributeSet` is now based on a Hash
-
Added ‘MetaSet` for keeping sets of attribute sets
-
Added DSL keyword for registering filtering methods
-
DSL method ‘filter_attributes` is using filtering methods registered before
-
-
Creation of duplicates for sets moved to class-level accessors
-
Adding elements to sets improved, ‘AttributeSet` initializer uses the method `add`
-
Common Filters seriously refactored (easily expandable and parametrizable now)
-
Added common filters: Convert, Order, Pick, Presence
-
-
minor enhancements
-
DSL class methods for models have now aliases named in third person
-
‘AttributeSet#annotations` returns a hash containing annotated attributes only
-
Documentation updated, common filters specific documentation moved to ‘COMMON-FILTERS`
-
Added ‘AttributeSet::Enumerable#each_name_value` enumerator
-
Added ‘AttributeSet::Enumerable#select_accessible` enumerator
-
Added DSL for attribute name gethering from next method name in a chain
-
Added ‘filtered_attribute_simple` DSL method
-
Added ‘attribute_set_exists?` DSL class method
-
Added ‘virtual?` and `semi_real?` to `AttributeSet::AttrQuery` and `AttributeSet::Query`
-
Added ‘changed?` and `unchanged?` to `AttributeSet::AttrQuery` and `AttributeSet::Query`
-
Added ‘AttributeSet#to_set`
-
Improved DSL methods: ‘valid?`, `invalid?`, `accessible?`, `protected?`
-
Improved ‘AttributeSet::Query` initializer (added error checking)
-
Improved ‘attributes_to_filter` DLS method (removed redundant calls to duplicates of a set)
-
Overriden ‘inspect` method in `AttributeSet`
-
-
major bugfixes
-
Fixed ‘AttributeSet::Query` wrapper calls (passing custom calls to next method was broken)
-
Replaced ‘hash.merge(hash)` expressions with more `HashWithIndifferentAccess` compliant
-
-
minor bugfixes
-
Enumerators wrapped to return ‘AttributeSet::Enumerator` objects
-
1.4.0 / 2012-08-24
-
major enhancements
-
Added annotations support
-
Added Split and Join common filters
-
Improved virtual attributes handling (added attr_virtual keyword)
-
All common filters can now handle arrays and hashes
-
API change: additional yeld params changed for DSL instance methods:
-
‘for_each_attr_from_set`
-
‘filter_attrs_from_set`
-
‘operate_on_attrs_from_set`
-
-
API change: class methods return copies of sets, not originals
-
-
minor enhancements
-
Added ‘values` and `values_hash` methods to `AttributeSet::Query` for reading values
-
Added ‘value` method to `AttributeSet::AttrQuery` for reading value
-
Added ‘each` iterator to custom enumerators
-
Added ‘attribute_set_simple` instance DSL method for bypassing proxies
-
Added ‘filter_attributes` instance DSL method for running all predefined filters
-
Added calls forwarding in proxy classes for ‘instance_eval` and `instance_exec` methods
-
‘AttributeSetEnumerable` is now `AttributeSet::Enumerable`
-
‘AttirbuteSetEnumerator` is now `AttributeSet::Enumerator`
-
Modified filtering methods so they return specialized enumerator when called whithout a block
-
‘for_each_attr_from_set`
-
‘filter_attrs_from_set`
-
-
-
major bugfixes
-
In ‘AttributeSet::Query`: separated instance level data from class level by adding `dup` where needed
-
In ‘AttributeSet`: separated instance level data from class level by adding `dup` where needed
-
-
minor bugfixes
-
In ‘AttributeFilters::Common`: `Squish` submodule included in `Common` module
-
In ‘AttributeSet::Query`: replaced calls to `send` by calls to `public_send`
-
In ‘AttributeSet::Query`: replaced calls to `method` by calls to `public_method`
-
In ‘AttributeSet::AttrQuery`: replaced call to `method` by call to `public_method`
-
In ‘AttributeFilters::operate_on_attrs_from_set`: replaced calls to `send` by calls to `public_send`
-
1.3.2 / 2012-08-05
-
minor bugfixes
-
fixed indentation in HISTORY file
-
1.3.1 / 2012-08-05
-
major enhancements
-
Added ‘accessible?`, `inaccessible?`, `protected?` attribute checks
-
Added ‘all_accessible_attributes`, `all_protected_attributes`, `all_inaccessible_attributes`
-
-
minor enhancements
-
Added squish common filter
-
1.3.0 / 2012-08-04
-
major bugfixes
-
In ‘AttributeSet::Query`: proxy now uses `send` to get attribute values
-
-
major enhancements
-
Added ‘valid?` and `invalid?` DSL instance methods
-
Added ‘all_attributes` instance method
-
1.2.2 / 2012-08-03
-
major enhancements
-
Common filtering methods modularized
-
-
minor enhancements
-
Added ‘is_a?` overrides to proxy classes
-
Method ‘attributes_to_filter` can now take attribute set as an argument
-
1.2.1 / 2012-07-09
-
minor bugfixes
-
Fixed documentation links
-
1.2.0 / 2012-07-08
-
major bugfixes
-
In ‘AttributeSet::Query`: removed typo that caused incorrect processing
-
-
minor bugfixes
-
Added missing ‘respond_to?` definitions to proxy classes
-
-
major enhancements
-
Added enumerators (‘AttributeSetEnumerable` and `AttributeSetEnumerator`)
-
Added predefined filtering methods
-
Added virtual attributes support in filters
-
Written the usage instructions
-
-
minor enhancements
-
Removed the show DSL method from ‘AttrQuery` proxy class
-
Added checking of model methods that are needed for a proper operation
-
Proxy class ‘AttributeSet::Query` is now viral and tries to wrap the results in its own instances
-
Added ‘none` and `one` presence selectors to `AttributeSet::Query` class
-
Added ‘from_attributes_that` as an alias for the `attribute_set` instance method
-
1.1.2 / 2012-06-30
-
major bugfixes
-
In ‘operate_on_attrs_from_set`: replaced `self` and `method(attr)` calls with `send` (to be ORM agnostic)
-
In ‘attributes_to_filter`: inefficient `respond_to?` calls replaced by the attributes method call
-
-
major enhancements
-
‘AttributeFilters` module can be now used without full Rails stack, just with Active Model loaded
-
-
minor enhancements
-
Documentation updated
-
Added ‘attribute-filters/helpers.rb` containing `AttributeFiltersHelpers` module
-
Flags parsing method ‘attr_filter_process_flags` moved to `AttributeFiltersHelpers` as `process_flags`
-
Added SuperModel and ActiveRecord dependencies for testing purposes
-
Added first RSpec example
-
1.1.0 / 2012-06-29
-
major enhancement
-
API changed; ‘call_attrs_from_set` name changed to `for_each_attr_from_set`, caching removed
-
-
minor enhancements
-
Optimized code for attributes filtering
-
Namespace organized (‘AttributeFilters` moved completely under `ActiveModel` namespace)
-
Prepared for testing with RSpec
-
Added custom CSS file for YARD formatter
-
1.0.2 / 2012-06-28
-
minor enhancements
-
Documentation updated
-
Extended arguments parsing for DSL class method ‘attribute_set`
-
1.0.1 / 2012-06-28
-
minor enhancements
-
Documentation updated
-
Rakefile and gemspec updated
-
1.0.0 / 2012-06-28
-
major enhancement
-
Birthday!
-