still doing attr_reader, but closing #25
cattr still missing, but only one occurence. Later.
This commit is contained in:
parent
5ed6a07083
commit
1391667f6c
@ -39,13 +39,15 @@ module Ruby
|
|||||||
unless class_send.is_a?(SendStatement)
|
unless class_send.is_a?(SendStatement)
|
||||||
raise "Other than methods, only class methods allowed, not #{class_send.class}"
|
raise "Other than methods, only class methods allowed, not #{class_send.class}"
|
||||||
end
|
end
|
||||||
unless class_send.name == :attr
|
allowed = [:attr , :attr_reader]
|
||||||
raise "Only remapping attr and cattr, not #{class_send.name}"
|
attr_name = class_send.name
|
||||||
|
unless allowed.include?(attr_name)
|
||||||
|
raise "Only remapping #{allowed}, not #{attr_name}"
|
||||||
end
|
end
|
||||||
methods = []
|
methods = []
|
||||||
class_send.arguments.each do |attr|
|
class_send.arguments.each do |attr|
|
||||||
methods << getter_for(attr.value)
|
methods << getter_for(attr.value)
|
||||||
methods << setter_for(attr.value)
|
methods << setter_for(attr.value) if attr_name == :attr
|
||||||
end
|
end
|
||||||
methods
|
methods
|
||||||
end
|
end
|
||||||
|
@ -32,5 +32,20 @@ module Ruby
|
|||||||
def setter
|
def setter
|
||||||
@vool.body.statements.last
|
@vool.body.statements.last
|
||||||
end
|
end
|
||||||
|
def test_class
|
||||||
|
assert_equal Vool::ClassStatement , @vool.class
|
||||||
|
end
|
||||||
|
def test_body
|
||||||
|
assert_equal Vool::Statements , @vool.body.class
|
||||||
|
end
|
||||||
|
def test_getter
|
||||||
|
assert_equal Vool::MethodStatement , getter.class
|
||||||
|
end
|
||||||
|
def test_getter_return
|
||||||
|
assert_equal Vool::ReturnStatement , getter.body.class
|
||||||
|
end
|
||||||
|
def test_getter_name
|
||||||
|
assert_equal :page , getter.name
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -8,24 +8,9 @@ module Ruby
|
|||||||
"attr :page"
|
"attr :page"
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_class
|
|
||||||
assert_equal Vool::ClassStatement , @vool.class
|
|
||||||
end
|
|
||||||
def test_body
|
|
||||||
assert_equal Vool::Statements , @vool.body.class
|
|
||||||
end
|
|
||||||
def test_method_len
|
def test_method_len
|
||||||
assert_equal 2 , @vool.body.length , "setter, getter"
|
assert_equal 2 , @vool.body.length , "setter, getter"
|
||||||
end
|
end
|
||||||
def test_getter
|
|
||||||
assert_equal Vool::MethodStatement , getter.class
|
|
||||||
end
|
|
||||||
def test_getter_return
|
|
||||||
assert_equal Vool::ReturnStatement , getter.body.class
|
|
||||||
end
|
|
||||||
def test_getter_name
|
|
||||||
assert_equal :page , getter.name
|
|
||||||
end
|
|
||||||
def test_setter
|
def test_setter
|
||||||
assert_equal Vool::MethodStatement , setter.class
|
assert_equal Vool::MethodStatement , setter.class
|
||||||
end
|
end
|
||||||
@ -44,5 +29,15 @@ module Ruby
|
|||||||
assert_equal [:val] , setter.args
|
assert_equal [:val] , setter.args
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
class TestClassStatementTransformReader < MiniTest::Test
|
||||||
|
include AttributeTests
|
||||||
|
|
||||||
|
def attr_def
|
||||||
|
"attr_reader :page"
|
||||||
|
end
|
||||||
|
def test_method_len
|
||||||
|
assert_equal 1 , @vool.body.length , "setter, getter"
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
@ -7,24 +7,9 @@ module Ruby
|
|||||||
def attr_def
|
def attr_def
|
||||||
"attr :page , :size"
|
"attr :page , :size"
|
||||||
end
|
end
|
||||||
def test_class
|
|
||||||
assert_equal Vool::ClassStatement , @vool.class
|
|
||||||
end
|
|
||||||
def test_body
|
|
||||||
assert_equal Vool::Statements , @vool.body.class
|
|
||||||
end
|
|
||||||
def test_method_len
|
def test_method_len
|
||||||
assert_equal 4 , @vool.body.length , "2 setters, 2 getters"
|
assert_equal 4 , @vool.body.length , "2 setters, 2 getters"
|
||||||
end
|
end
|
||||||
def test_getter
|
|
||||||
assert_equal Vool::MethodStatement , getter.class
|
|
||||||
end
|
|
||||||
def test_getter_return
|
|
||||||
assert_equal Vool::ReturnStatement , getter.body.class
|
|
||||||
end
|
|
||||||
def test_getter_name
|
|
||||||
assert_equal :page , getter.name
|
|
||||||
end
|
|
||||||
def test_setter
|
def test_setter
|
||||||
assert_equal Vool::MethodStatement , setter.class
|
assert_equal Vool::MethodStatement , setter.class
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user