w 3VCZͷίʔυΛύʔε͢Δ3VCZύʔαʔ
w 3VCZຊମͷύʔαʔͱҟͳΔ
w 3VCP$PQҎ֎Ͱ0QBM
3VCZ/FYUͳͲͰར
༻͞Ε͍ͯΔ
w 3VCP$PQ1BSTFSHFNʹΑΔߏจղੳʹ
ґଘ͢Δ
1BSTFSHFN
Slide 19
Slide 19 text
w 3VCZຊମ͕ߏจఆ͍ٛͯ͠ΔQBSTFZͷมߋ
Λ͍ͬͯΔ ͍ΘΏΔSEύʔςΟ
w 3VCZຊମͰ৽͍͠ߏจՃ͕͋ͬͯ
1BSTFSHFNଆͷߏจఆٛʹಉ༷ͷύονΛ
खΛೖΕͳ͍ͱɺ৽͍͠ߏจΛղੳͰ͖ͳ͍
w ݱࡏ0QBMίϛολʔ͕Ϧʔυ͍ͯ͠Δ
3VCZߏจղੳͷ࣮ͷͻͱͭ
w Ϣʔβʔ͕ૢ࡞͢Δͷͱ͍͏ΑΓɺ
3FFL$-*πʔϧͳΜ͔Ͱ3VCP$PQͷϊʔ
υύλʔϯͳͲͷػೳͷΈ͍͍ͨཁ͕
͋ͬͯΓग़͞Εͨ
w 5SBWFSTBM
1SPDFTTFE4PVSDF
ϊʔυͷύ
λʔϯهड़
"45֦ுϊʔυ"1*Λఏڙ͢Δ
3VCP$PQ"45
Slide 40
Slide 40 text
w 3VCZͷίʔυΛࢦఆ͞Εͨ3VCZόʔδϣϯ
ʹج͍ͮͯղੳ͞Εͨ
3VCP$PQ"451SPDFTTFE4PVSDF
w 1SPDFTTFE4PVSDFBTUͰ"45ΛऔಘՄೳ
w "45ͷϊʔυछผʹԠͨ͡ίʔϧόοΫΛݺ
ͼग़͢3VCP$PQ"455SBWFSTBM
"45Λॲཧ͢Δ͘͠Έ
w 1BSTFSఏڙͷ/PEF
Λܧঝͨ͠ศར"1*
w 3VCP$PQ"45ͷ
શϊʔυ͕ܧঝ͢Δ
εʔύʔΫϥε
w 3VCP$PQϧʔϧ࣮
ͷࡍʹʑࢀর͢Δ
IUUQTHJUIVCDPNSVCPDPQIRSVCPDPQBTUCMPCNBTUFSMJCSVCPDPQBTUOPEFSC
3VCP$PQ"45/PEF
3VCP$PQ"455SBWFSTBM
require 'rubocop-ast'
include RuboCop::AST::Traversal
# Event handler for `send` node
def on_send(node)
puts node.source
end
walk(ast) #=> puts "hello"
Slide 52
Slide 52 text
3VCP$PQ"455SBWFSTBM
require 'rubocop-ast'
include RuboCop::AST::Traversal
# Event handler for `send` node
def on_send(node)
puts node.source
end
walk(ast) XBML BTU
ຊฤͰͷݤͰ͢💡
Slide 53
Slide 53 text
w "45ͷύλʔϯϚον
Λ͢ΔϛχϚϜݴޠ
w Ϛονͨ͠ΛΩϟϓ
νϟ͢Δ͜ͱ͕Ͱ͖Δ
w EFG@OPEF@NBUDIFS
ͳͲͷҾʹΘΕΔ
IUUQTHJUIVCDPNSVCPDPQIRSVCPDPQBTUCMPCNBTUFSMJCSVCPDPQBTUOPEF@QBUUFSOSC
3VCP$PQ"45/PEF1BUUFSO
Slide 54
Slide 54 text
੩తղੳͷ͘͠Έޙฤ
Slide 55
Slide 55 text
w ղੳରͷ3VCZίʔυͷೖྗͱղੳ݁Ռͷ
Ϩϙʔτग़ྗ
w 3VCP$PQͷϧʔϧ࣮ͳΒͼʹ֦ு"1*ఏڙ
w ϢʔβʔͷΧελϜઃఆɺΦϓγϣϯͷղऍ
w σϑΥϧτϧʔϧSVCZTUZMFHVJEFʹ४ͣΔ
3VCP$PQ