Class: RubyLint::MethodCall::AssignMember
- Inherits:
-
Base
- Object
- Base
- RubyLint::MethodCall::AssignMember
show all
- Defined in:
- lib/ruby-lint/method_call/assign_member.rb
Overview
The AssignMember class is used for evaluating object member assignments.
This includes the following types of assignments:
- Array index assignments
- Hash key assignments
Instance Attribute Summary
Attributes inherited from Base
#node, #vm
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Instance Method Details
34
35
36
37
38
39
40
|
# 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
|
#evaluate(arguments, context, block = nil) ⇒ Object
14
15
16
17
18
19
20
21
22
23
24
25
|
# 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
|
#prepare_values(values) ⇒ Array
46
47
48
49
50
51
52
53
54
|
# 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
|