lib/xpose/decorated.rb in xpose-0.1.2 vs lib/xpose/decorated.rb in xpose-0.1.5
- old
+ new
@@ -3,10 +3,11 @@
attr_accessor :conf
def initialize(**args)
@conf = ::Xpose::Configuration.build(args)
raise MissingParameter if conf.name.nil?
+ decorate_self if conf.decorate == :self
end
def call(instance)
v = instance.send(conf.method_name)
if conf.decorator == :infer
@@ -21,9 +22,15 @@
raise StandardError.new('Unknown decorator')
end
end
private
+
+ def decorate_self
+ conf.decorated_name = conf.name
+ conf.decorated_method_name = conf.method_name
+ conf.decorated_instance_variable_name = conf.instance_variable_name
+ end
def infer(v)
if v.respond_to?(:decorate)
v.decorate
elsif class_exists?(klass)