From e3bc8b6099a7cfbec43d93156e8e2de22c5539cf Mon Sep 17 00:00:00 2001 From: Christoph Thiel Date: Tue, 20 Sep 2011 14:02:43 +0200 Subject: [PATCH 1/5] use non-breaking space to join ordering indicator --- lib/meta_search/helpers/url_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/meta_search/helpers/url_helper.rb b/lib/meta_search/helpers/url_helper.rb index 82d3d46..95d7d3c 100644 --- a/lib/meta_search/helpers/url_helper.rb +++ b/lib/meta_search/helpers/url_helper.rb @@ -45,7 +45,7 @@ def sort_link(builder, attribute, *args) 'meta_sort' => [attr_name, new_order].join('.') ) ) - link_to [ERB::Util.h(name), order_indicator_for(current_order)].compact.join(' ').html_safe, + link_to [ERB::Util.h(name), order_indicator_for(current_order)].compact.join(' ').html_safe, url_for(options), html_options end From 2292336e4206aeaecad46cfcdee35d2ee609e470 Mon Sep 17 00:00:00 2001 From: Ariejan de Vroom Date: Tue, 26 Feb 2013 15:14:54 +0100 Subject: [PATCH 2/5] Update meta_search.gemspec --- meta_search.gemspec | 28 +++++----------------------- 1 file changed, 5 insertions(+), 23 deletions(-) diff --git a/meta_search.gemspec b/meta_search.gemspec index c53c7f3..f176d1e 100644 --- a/meta_search.gemspec +++ b/meta_search.gemspec @@ -63,28 +63,10 @@ Gem::Specification.new do |s| s.rubygems_version = "1.8.15" s.summary = "Object-based searching (and more) for simply creating search forms." - if s.respond_to? :specification_version then - s.specification_version = 3 - - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_runtime_dependency(%q, ["~> 3.1"]) - s.add_runtime_dependency(%q, ["~> 3.1"]) - s.add_runtime_dependency(%q, ["~> 0.5.0"]) - s.add_runtime_dependency(%q, ["~> 3.1"]) - s.add_development_dependency(%q, ["~> 2.11"]) - else - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 0.5.0"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 2.11"]) - end - else - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 0.5.0"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 2.11"]) - end + s.add_dependency(%q, [">= 3.1"]) + s.add_dependency(%q, [">= 3.1"]) + s.add_dependency(%q, [">= 0.5.0"]) + s.add_dependency(%q, [">= 3.1"]) + # s.add_dependency(%q, ["~> 2.11"]) end From c6eebb61e29f35a24f07dbc4d060dcaf0cc790ad Mon Sep 17 00:00:00 2001 From: Derek Date: Tue, 26 Feb 2013 17:52:47 -0600 Subject: [PATCH 3/5] hacking working on getting rails4 --- Gemfile | 8 ++++---- lib/meta_search/helpers/form_helper.rb | 2 +- meta_search.gemspec | 24 ++++++++++++------------ 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Gemfile b/Gemfile index 5c6c4af..faabddd 100644 --- a/Gemfile +++ b/Gemfile @@ -2,10 +2,10 @@ source :rubygems # Don't do a "gemspec" here. Seriously. It jacks up Jeweler. -gem "activerecord", "~> 3.1" -gem "activesupport", "~> 3.1" -gem "polyamorous", "~> 0.5.0" -gem "actionpack", "~> 3.1" +gem "activerecord", "4.0.0.beta1" +gem "activesupport", "4.0.0.beta1" +gem "polyamorous", :git => "https://github.com/ernie/polyamorous.git" +gem "actionpack", "4.0.0.beta1" group :development do gem "shoulda", "~> 2.11" diff --git a/lib/meta_search/helpers/form_helper.rb b/lib/meta_search/helpers/form_helper.rb index 5ed7f79..0a9a576 100644 --- a/lib/meta_search/helpers/form_helper.rb +++ b/lib/meta_search/helpers/form_helper.rb @@ -1,7 +1,7 @@ module MetaSearch module Helpers module FormHelper - def apply_form_for_options!(object_or_array, options) + def apply_form_for_options!(object_or_array, options, something) if object_or_array.is_a?(MetaSearch::Builder) builder = object_or_array options[:url] ||= polymorphic_path(object_or_array.base) diff --git a/meta_search.gemspec b/meta_search.gemspec index c53c7f3..4e401ec 100644 --- a/meta_search.gemspec +++ b/meta_search.gemspec @@ -67,23 +67,23 @@ Gem::Specification.new do |s| s.specification_version = 3 if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_runtime_dependency(%q, ["~> 3.1"]) - s.add_runtime_dependency(%q, ["~> 3.1"]) - s.add_runtime_dependency(%q, ["~> 0.5.0"]) - s.add_runtime_dependency(%q, ["~> 3.1"]) + s.add_runtime_dependency(%q, ["4.0.0.beta1"]) + s.add_runtime_dependency(%q, ["4.0.0.beta1"]) + s.add_runtime_dependency(%q, ["> 0.5.0"]) + s.add_runtime_dependency(%q, ["4.0.0.beta1"]) s.add_development_dependency(%q, ["~> 2.11"]) else - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 0.5.0"]) - s.add_dependency(%q, ["~> 3.1"]) + s.add_dependency(%q, ["4.0.0.beta1"]) + s.add_dependency(%q, ["4.0.0.beta1"]) + s.add_dependency(%q, ["> 0.5.0"]) + s.add_dependency(%q, ["4.0.0.beta1"]) s.add_dependency(%q, ["~> 2.11"]) end else - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 3.1"]) - s.add_dependency(%q, ["~> 0.5.0"]) - s.add_dependency(%q, ["~> 3.1"]) + s.add_dependency(%q, ["4.0.0.beta1"]) + s.add_dependency(%q, ["4.0.0.beta1"]) + s.add_dependency(%q, ["> 0.5.0"]) + s.add_dependency(%q, ["4.0.0.beta1"]) s.add_dependency(%q, ["~> 2.11"]) end end From 2cfe822cf69ae9a4c0b8a934283706fa655bde26 Mon Sep 17 00:00:00 2001 From: Derek Date: Mon, 4 Mar 2013 13:12:04 -0600 Subject: [PATCH 4/5] updated form helper api to be compliant with ActionPack 4.0 --- lib/meta_search/helpers/form_helper.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/meta_search/helpers/form_helper.rb b/lib/meta_search/helpers/form_helper.rb index 0a9a576..e1c4147 100644 --- a/lib/meta_search/helpers/form_helper.rb +++ b/lib/meta_search/helpers/form_helper.rb @@ -1,12 +1,12 @@ module MetaSearch module Helpers module FormHelper - def apply_form_for_options!(object_or_array, options, something) - if object_or_array.is_a?(MetaSearch::Builder) - builder = object_or_array - options[:url] ||= polymorphic_path(object_or_array.base) - elsif object_or_array.is_a?(Array) && (builder = object_or_array.detect {|o| o.is_a?(MetaSearch::Builder)}) - options[:url] ||= polymorphic_path(object_or_array.map {|o| o.is_a?(MetaSearch::Builder) ? o.base : o}) + def apply_form_for_options!(record,object,options) + if object.is_a?(MetaSearch::Builder) + builder = object + options[:url] ||= polymorphic_path(object.base) + elsif object.is_a?(Array) && (builder = object.detect {|o| o.is_a?(MetaSearch::Builder)}) + options[:url] ||= polymorphic_path(object.map {|o| o.is_a?(MetaSearch::Builder) ? o.base : o}) else super return From 90e493a53a2f38773f45c8f7eeeaa89c237d0d9b Mon Sep 17 00:00:00 2001 From: Christoph Thiel Date: Fri, 19 Jul 2013 19:04:24 +0200 Subject: [PATCH 5/5] rails4 active_record fixes --- lib/meta_search/builder.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/meta_search/builder.rb b/lib/meta_search/builder.rb index 024a080..9421160 100644 --- a/lib/meta_search/builder.rb +++ b/lib/meta_search/builder.rb @@ -30,7 +30,7 @@ class Builder # for how it will expose this model and its associations to your controllers/views. def initialize(base_or_relation, opts = {}) opts = opts.dup - @relation = base_or_relation.scoped + @relation = base_or_relation.all @base = @relation.klass @search_key = (opts.delete(:search_key) || 'search').to_s @options = opts # Let's just hang on to other options for use in authorization blocks @@ -51,13 +51,13 @@ def get_association(assoc, base = @base) def get_attribute(name, parent = @join_dependency.join_base) attribute = nil - if get_column(name, parent.active_record) + if get_column(name, parent.base_klass) attribute = parent.table[name] elsif (segments = name.to_s.split(/_/)).size > 1 remainder = [] found_assoc = nil while remainder.unshift(segments.pop) && segments.size > 0 && !found_assoc do - if found_assoc = get_association(segments.join('_'), parent.active_record) + if found_assoc = get_association(segments.join('_'), parent.base_klass) if found_assoc.options[:polymorphic] unless delimiter = remainder.index('type') raise PolymorphicAssociationMissingTypeError, "Polymorphic association specified without a type" @@ -82,7 +82,7 @@ def get_attribute(name, parent = @join_dependency.join_base) # MetaSearch::Where def build(option_hash) opts = option_hash.dup || {} - @relation = @base.scoped + @relation = @base.all opts.stringify_keys! opts = collapse_multiparameter_options(opts) assign_attributes(opts)