class RubyLint::MethodCall::AssignMember

The AssignMember class is used for evaluating object member assignments. This includes the following types of assignments:

Public Instance Methods

evaluate(arguments, context, block = nil) click to toggle source

@see Base#evaluate

# File lib/ruby-lint/method_call/assign_member.rb, line 14
def evaluate(arguments, context, block = nil)
  return if context.frozen?

  *members, values = arguments
  member_values    = prepare_values(values)

  members.each do |member|
    member = create_member(member.value.to_s, member_values.shift)

    context.add_definition(member)
  end
end

Private Instance Methods

create_member(name, value) click to toggle source

@param [String] name @param [Mixed] value @return [RubyLint::Definition::RubyObject]

# File lib/ruby-lint/method_call/assign_member.rb, line 34
def create_member(name, value)
  return Definition::RubyObject.new(
    :name  => name,
    :type  => :member,
    :value => value
  )
end
prepare_values(values) click to toggle source

@param [Array] values @return [Array]

# File lib/ruby-lint/method_call/assign_member.rb, line 46
def prepare_values(values)
  if values and values.array?
    member_values = values.list(:member).map(&:value)
  elsif values
    member_values = [values]
  end

  return member_values
end