Class: PaperTrail::Human::Adapters::Resolvers::Enum
- Inherits:
-
Object
- Object
- PaperTrail::Human::Adapters::Resolvers::Enum
- Includes:
- Ports::Resolver
- Defined in:
- lib/paper_trail/human/adapters/resolvers/enum.rb
Instance Method Summary collapse
-
#initialize(class_name: nil, method: :label, mapping: nil, from_model: nil, **options) ⇒ Enum
constructor
A new instance of Enum.
- #resolve(value) ⇒ Object
Constructor Details
#initialize(class_name: nil, method: :label, mapping: nil, from_model: nil, **options) ⇒ Enum
Returns a new instance of Enum.
10 11 12 13 14 15 16 17 |
# File 'lib/paper_trail/human/adapters/resolvers/enum.rb', line 10 def initialize(class_name: nil, method: :label, mapping: nil, from_model: nil, **) @class_name = class_name || [:class].to_s @method = method @mapping = mapping @from_model = from_model @field = [:field]&.to_s @labels = [:labels] end |
Instance Method Details
#resolve(value) ⇒ Object
19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/paper_trail/human/adapters/resolvers/enum.rb', line 19 def resolve(value) return resolve_from_model(value) if @from_model return @mapping[value] || value if @mapping klass = Object.const_get(@class_name) if klass.respond_to?(@method) klass.public_send(@method, value) || value else value end rescue NameError value end |