module Yuba::ViewModel::Rendering

Public Instance Methods

render(*args) click to toggle source
Calls superclass method
# File lib/yuba/view_model/rendering.rb, line 4
def render(*args)
  view_model_hash = args.find { |arg| arg.is_a?(Hash) && arg[:view_model] }
  @_view_model = view_model_hash[:view_model] if view_model_hash && view_model_hash[:view_model]
  super
end
view_assigns() click to toggle source
Calls superclass method
# File lib/yuba/view_model/rendering.rb, line 10
def view_assigns
  super.merge(view_model_assigns)
end

Private Instance Methods

_protected_ivars() click to toggle source
Calls superclass method
# File lib/yuba/view_model/rendering.rb, line 16
def _protected_ivars
  super.merge(:@_view_model)
end
valid_variable_name?(name) click to toggle source
# File lib/yuba/view_model/rendering.rb, line 33
def valid_variable_name?(name)
  name.match?(/\A[_a-z]\w*\z/)
end
view_model_assigns() click to toggle source
# File lib/yuba/view_model/rendering.rb, line 20
def view_model_assigns
  return {} unless defined?(@_view_model)
  methods = @_view_model.public_methods(false)
  methods.reject! do |method_name|
    %i[initialize].include?(method_name) ||
      !valid_variable_name?(method_name)
  end
  methods.inject({}) do |hash, method_name|
    hash[method_name] = @_view_model.public_send(method_name)
    hash
  end
end