From 91f8ef7026a98563432cf9b90ac5289b50890330 Mon Sep 17 00:00:00 2001 From: Semyon Pupkov Date: Wed, 19 Apr 2017 11:45:50 +0500 Subject: [PATCH] fix: add extractor back for capability https://jira.railsc.ru/browse/USERS-244 --- lib/treasury/fields/extractor.rb | 23 ++++++++++++++++++++++ spec/lib/treasury/fields/extractor_spec.rb | 13 ++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 lib/treasury/fields/extractor.rb create mode 100644 spec/lib/treasury/fields/extractor_spec.rb diff --git a/lib/treasury/fields/extractor.rb b/lib/treasury/fields/extractor.rb new file mode 100644 index 0000000..9b8d0ae --- /dev/null +++ b/lib/treasury/fields/extractor.rb @@ -0,0 +1,23 @@ +module Treasury + module Fields + # Public: Модуль добавляет классу метод extract_object, подходит для источников и полей денормализации. + # + # Deprecated: For extract object use Apress::Sources::ExtractObject module + # + # Example: + # + # class Field + # extend ::Treasury::Fields::Extractor + # extract_attribute_name :user + # end + # + # Field.extract_object(object: {user_id: 1}) + # => 1 + module Extractor + def self.extended(base) + warn "[DEPRECATION] Please use `extend Apress::Sources::ExtractObject` instead Treasury::Fields::Extractor" + base.extend(Apress::Sources::ExtractObject) + end + end + end +end diff --git a/spec/lib/treasury/fields/extractor_spec.rb b/spec/lib/treasury/fields/extractor_spec.rb new file mode 100644 index 0000000..580f764 --- /dev/null +++ b/spec/lib/treasury/fields/extractor_spec.rb @@ -0,0 +1,13 @@ +RSpec.describe Treasury::Fields::Extractor do + let(:class_with_extractor) do + Class.new do + extend Treasury::Fields::Extractor + + extract_attribute_name :user + end + end + + describe '.extract_object' do + it { expect(class_with_extractor.extract_user(object: {user_id: 1})).to eq 1 } + end +end