-
Added searchgasm_params and searchgasm_url helper to use outside of the control type helpers.
-
Added dup and clone methods that work properly for searchgasm objects
-
Fixed bug to remove nil scope values, HABTM likes to add :limit => nil
-
Removed unnecessary build_search methods for associations
-
Removed support for searching with conditions only. This just made things much more complicated when you can accomplish the same thing by starting a new search and only setting conditions.
-
Fixed bug when searching with any conditions to use left outer joins instead of inner joins.
-
Setting a condition to nil removes it if the condition is set to ignore blanks
-
Setting search.conditions = “some sql” will reset ALL conditions. Alternatively search.conditions => {:first_name_contains => “Ben”} will overwrite “some sql”. The same goes with search.conditions.first_name_contains = “Ben”.
-
Fixed bug with inspect
-
Other small performance enhancements with memoized attributes
-
Fixed bug with select control types not using :search_obj to determine its select values.
-
Added is_nil and is_blank condition types.
-
“memoized” various attributes for performance enhancements
-
Removed the :order option from calculation options when :order is useless and just slows down query.
-
Switched from using :include to :joins, big performance increase
-
Fixed typo in “next page” button.
-
Updated valid options for searching and performing calculations, fixed some bugs when searching and performing calculations with advanced options.
-
Fixed bug in ordering where table name was assumed by the hash. Now assumed by the reflection.
-
Added default for per_page, so pagination comes implemented by default
-
On mass assignments blank strings for any conditions are ignored. Sometimes blank strings are meaningful for “equals” and “does not equal”, those only takes effect if you explicitly call these conditions: search.conditions.name = “”. User.new_search(:conditions => {:name => “”}) will be ignored. Also, Searchgasm should never change how ActiveRecord behaves by default. So User.all(:conditions => {:name => “”}) will NOT be ignored.
-
Added the options :inner_spread and :outer_spread to the page_links helper. Also added various config options for setting page_links defaults.
-
Updated calculation methods to ignore :limit and :offset. AR returns 0 or nil on calculations that provide an offset.
-
Added support to allow for “any” of the conditions, instead of all of them. Joins conditions with “or” instead of “and”. See Searchgasm::Conditions::Base or the readme
-
Fixed bugs when performing calculations and searches on has_many through relationships.
-
Instead of merging the find_options myself, I delegated that to AR’s with_scope function, which already does this. Much more solid, less intrusive.
-
Updated inspect to show the current options for your search. Plays nicer in the console.
-
Made sure protection state is persistent among relationship conditions.
-
Fixed bug with backwards compatibility of rails. concat requires a proc in older version.
-
Defaulted remote control types to use GET requests instead of POST.
-
Completely reengineered integration with ActiveRecord. Searchgasm is properly using scopes letting you do use serachgasm where scope are implemented. @current_users.orders.new_search, etc. If your search is scoped and you want a search object, that search object will represent a new search in the context of those scopes, meaning the scopes get merged into Searchgasm as options.
-
Dropped support for Searchgasm functionality when defining relationships: has_many :order, :conditions => {:total_gt => 100}, will not work anymore. It’s a chicken and the egg thing. Searchgasm needs AR constants, some models get loaded before others, therefore the Order model may not have been loaded yet, causing an unknown constant error.
-
Clean up redundant code and moved it into the Searchgasm::Shared namespace.
-
Moved cached searchers out of the global namespace and into the Searchgasm::Cache namespce.
-
Various changes to improve performance through profiling / benchmarking. pastie.org/271936
-
Config.per_page works with new_search & new_search! only. Where as before it was only working if the search was protected.
-
Cached “searchers” so when a new search object is instantiated it doesn’t go through all of the meta programming and method creation. Helps a lot with performance. You will see the speed benefits after the first instantiation.
-
Added in new options for page_links.
-
Fixed minor bugs when doing page_links.
-
Updated documentation to be more detailed and inclusive.
-
Major changes in the helpers, they were completely re-engineered. Hence the new version. I established a pattern between all helpers giving you complete flexibility as to how they are used. All helpers are called differently now (see documentation).
-
Fixed bug with setting the per_page configuration to only take effect on protected searches, thus staying out of the way of normal searching.
-
Hardened more tests
-
Fixed setting per_page to nil, false, or ”. This is done to “show all” results.
-
Fixed order_by helper bug when guessing the text with arrays. Should use the first value instead of last.
-
Added in per_page config option.
-
Complete class restructure. Moved the 3 main components into their own base level class: Search, Conditions, Condition
-
Split logic and functionality into their own modules, implemented via alias_chain_method
-
Added in helpers for using in a rails app
-
Added link to documentation and live example in README
-
Various small bug fixes
-
Hardened tests
-
Fixed bug when instantiating with nil options
-
Enhanced searching with conditions only, added in search methods and calculations
-
Updated README to include examples
-
Cleaned up search methods
-
Removed reset! method for both searching and searching by conditions
-
Changed structure of conditions to have their own class
-
Added API for adding your own conditions.
-
Enhanced protection from SQL injections (made more efficient)
-
Added aliases for datetime, date, time, and timestamp attrs. You could call created_at_after, now you can also call created_after. Just removed the “at” requirement.
-
First release