class AngularSprinkles::FormBinder::Base

Public Class Methods

new(_args) click to toggle source
# File lib/angular_sprinkles/form_binder/base.rb, line 4
def initialize(_args)
  @method = _args.fetch(:method)
  @args = _args.fetch(:args).dup

  object = _args.fetch(:object)
  attribute = @args.first.to_sym

  @attribute_binding = object.bind(attribute)
end

Public Instance Methods

call() click to toggle source
# File lib/angular_sprinkles/form_binder/base.rb, line 14
def call
  # Let the original form helper raise the exception
  if helper_is_going_raise_argument_error?
    return @args
  end

  augment_args
end

Private Instance Methods

augment_args() click to toggle source
# File lib/angular_sprinkles/form_binder/base.rb, line 25
def augment_args; raise NotImplementedError; end
helper_is_going_raise_argument_error?() click to toggle source
# File lib/angular_sprinkles/form_binder/base.rb, line 27
def helper_is_going_raise_argument_error?
  @args.count < required_parameters.count
end
required_parameters() click to toggle source
# File lib/angular_sprinkles/form_binder/base.rb, line 31
def required_parameters
  @method.parameters.select { |i| i.first == :req }
end