lib/hanami/view/exposure.rb in hanami-view-2.0.0.alpha8 vs lib/hanami/view/exposure.rb in hanami-view-2.1.0.beta1
- old
+ new
@@ -28,38 +28,44 @@
def bind(obj)
self.class.new(name, proc, obj, **options)
end
def dependency_names
- if proc
- proc.parameters.each_with_object([]) { |(type, name), names|
- names << name if EXPOSURE_DEPENDENCY_PARAMETER_TYPES.include?(type)
- }
- else
- []
- end
+ @dependency_names ||=
+ if proc
+ proc.parameters.each_with_object([]) { |(type, name), names|
+ names << name if EXPOSURE_DEPENDENCY_PARAMETER_TYPES.include?(type)
+ }
+ else
+ []
+ end
end
+ def dependencies?
+ !dependency_names.empty?
+ end
+
def input_keys
- if proc
- proc.parameters.each_with_object([]) { |(type, name), keys|
- keys << name if INPUT_PARAMETER_TYPES.include?(type)
- }
- else
- []
- end
+ @input_keys ||=
+ if proc
+ proc.parameters.each_with_object([]) { |(type, name), keys|
+ keys << name if INPUT_PARAMETER_TYPES.include?(type)
+ }
+ else
+ []
+ end
end
def for_layout?
- options.fetch(:layout) { false }
+ options.fetch(:layout, false)
end
def decorate?
- options.fetch(:decorate) { true }
+ options.fetch(:decorate, true)
end
def private?
- options.fetch(:private) { false }
+ options.fetch(:private, false)
end
def default_value
options[:default]
end