diff --git a/lib/treasury/fields/base.rb b/lib/treasury/fields/base.rb index ceca6f4..60bda42 100644 --- a/lib/treasury/fields/base.rb +++ b/lib/treasury/fields/base.rb @@ -46,6 +46,10 @@ class Base # define_callbacks :data_changed + def self.raise_no_implemented(accessor_type, params) + raise Treasury::Fields::Errors::NoAccessor.new(self, accessor_type, params) + end + def self.create_by_class(klass, field_model = Treasury::Models::Field.find_by_field_class(klass.to_s)) raise Errors::UnknownFieldClassError if field_model.nil? return klass.to_s.constantize.new(field_model) diff --git a/spec/lib/treasury/fields/base_spec.rb b/spec/lib/treasury/fields/base_spec.rb index d4a143a..4753197 100644 --- a/spec/lib/treasury/fields/base_spec.rb +++ b/spec/lib/treasury/fields/base_spec.rb @@ -12,6 +12,10 @@ def data_changed_callback; end class TreasuryFieldsBase < Treasury::Fields::Base include FieldCallback + + def self.value_as_integer(params) + raise_no_implemented(:integer, params) + end end describe TreasuryFieldsBase do @@ -35,4 +39,11 @@ class TreasuryFieldsBase < Treasury::Fields::Base subject.send(:data_changed, chaged_objects) end end + + describe 'raise_no_implemented' do + it do + expect { described_class.value_as_integer({}) } + .to raise_error(Treasury::Fields::Errors::NoAccessor) + end + end end