From e8de5907fafa5d7488e4224eaf463872be0250d6 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 25 Oct 2013 18:09:36 +1100 Subject: [PATCH] Actually fix the issue, rather than pretending to --- .../step_definitions/queryable_steps.rb | 2 +- .../lib/middleman-core/sitemap/queryable.rb | 18 +++++++----------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/middleman-core/features/step_definitions/queryable_steps.rb b/middleman-core/features/step_definitions/queryable_steps.rb index c14fcd6c..995c3d33 100644 --- a/middleman-core/features/step_definitions/queryable_steps.rb +++ b/middleman-core/features/step_definitions/queryable_steps.rb @@ -7,7 +7,7 @@ When /^I chain a where clause onto that query$/ do end Then /^the original query should remain unchanged$/ do - @query.should_not eql @new_query + @query.opts({}).should_not eql @new_query.opts({}) end Then /^should initialize with an attribute and an operator$/ do diff --git a/middleman-core/lib/middleman-core/sitemap/queryable.rb b/middleman-core/lib/middleman-core/sitemap/queryable.rb index fbe83ac1..59ce45ce 100644 --- a/middleman-core/lib/middleman-core/sitemap/queryable.rb +++ b/middleman-core/lib/middleman-core/sitemap/queryable.rb @@ -80,31 +80,27 @@ module Middleman selector = Selector.new(:attribute => attribute, :operator => 'equal') selector_hash.update({ selector => value }) end - @where.merge! selector_hash - Query.new @model, opts + Query.new @model, opts(:where => @where.merge(selector_hash)) end - def opts - { :where => @where, + def opts new_opts + { :where => {}.merge(@where), :order_by => @order_by, :offset => @offset, :limit => @limit - } + }.merge(new_opts) end def order_by(field) - @order_by = field.is_a?(Symbol) ? {field => :asc} : field - Query.new @model, opts + Query.new @model, opts(:order_by => field.is_a?(Symbol) ? {field => :asc} : field) end def offset(number) - @offset = number - Query.new @model, opts + Query.new @model, opts(:offset => number) end def limit(number) - @limit = number - Query.new @model, opts + Query.new @model, opts(:limit => number) end def first