Class: Xpose::Decorated
- Inherits:
-
Object
- Object
- Xpose::Decorated
- Defined in:
- lib/xpose/decorated.rb
Instance Attribute Summary collapse
-
#conf ⇒ Object
readonly
Returns the value of attribute conf.
Instance Method Summary collapse
-
#initialize(**options) ⇒ Decorated
constructor
A new instance of Decorated.
- #value(instance, v) ⇒ Object
Constructor Details
#initialize(**options) ⇒ Decorated
Returns a new instance of Decorated.
5 6 7 |
# File 'lib/xpose/decorated.rb', line 5 def initialize(**) @conf = ::Xpose::Configuration.new(.merge(permissive: true)) end |
Instance Attribute Details
#conf ⇒ Object (readonly)
Returns the value of attribute conf.
3 4 5 |
# File 'lib/xpose/decorated.rb', line 3 def conf @conf end |
Instance Method Details
#value(instance, v) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/xpose/decorated.rb', line 9 def value(instance, v) return v unless shall_decorate?(instance, v) if conf.decorator == :infer infer(v) elsif Class === conf.decorator conf.decorator.new(v) elsif conf.decorator.respond_to?(:call) conf.decorator.call(v) elsif Symbol === conf.decorator && class_exists?(klass_from_symbol) klass_from_symbol.new(v) else raise UnknownDecoratorError.new(conf.decorator) end end |