From 30e7b97b3458182da1dbd80e03f4205453b7f2dd Mon Sep 17 00:00:00 2001 From: Alexey Dubovskoy Date: Thu, 18 Jul 2019 17:46:26 +0100 Subject: [PATCH] Set default filter values at initializing time --- lib/filtered/base.rb | 8 ++++++-- lib/filtered/version.rb | 2 +- spec/filtered_spec.rb | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/filtered/base.rb b/lib/filtered/base.rb index 1fbf843..70805d7 100644 --- a/lib/filtered/base.rb +++ b/lib/filtered/base.rb @@ -188,6 +188,12 @@ def initialize(params = {}, &block) end yield self if block_given? + + fields.each do |name, value, definition| + next if value || !definition.default_computer + + fields[name] = definition.default_computer.(self) + end end @@ -221,8 +227,6 @@ def entitled_fields return enum_for(:entitled_fields) unless block_given? fields.each do |name, value, definition| - value = definition.default_computer.(self) if !value && definition.default_computer - value_accepted = eval_option_proc(definition.acceptance_computer, value) value_declined = eval_option_proc(definition.decline_computer, value) diff --git a/lib/filtered/version.rb b/lib/filtered/version.rb index f17156b..577af4a 100644 --- a/lib/filtered/version.rb +++ b/lib/filtered/version.rb @@ -1,3 +1,3 @@ module Filtered - VERSION = "0.1.0" + VERSION = "0.1.1" end diff --git a/spec/filtered_spec.rb b/spec/filtered_spec.rb index 45e5cfd..6ee6c2c 100644 --- a/spec/filtered_spec.rb +++ b/spec/filtered_spec.rb @@ -391,6 +391,7 @@ class MyNewFilter < Filtered::Base filter = MyNewFilter.new expect(filter).to have_filter_value(year: 2019) + expect(filter.year).to eq(2019) end it "supports 'default' as proc" do @@ -405,6 +406,7 @@ class MyNewFilter < Filtered::Base end expect(filter).to have_filter_value(year: 2019) + expect(filter.year).to eq(2019) end it "supports 'default' as method name" do @@ -419,6 +421,7 @@ def default_year filter = MyNewFilter.new expect(filter).to have_filter_value(year: 2019) + expect(filter.year).to eq(2019) end end