Sha256: fcbf328b4436e9d3340a93ff5d3a7f1bbc379c092fe04a4b950a2bca2a79f0f7
Contents?: true
Size: 1.46 KB
Versions: 2
Compression:
Stored size: 1.46 KB
Contents
require 'spec_helper' describe Proc do describe "#to_ast" do it "return Parser::AST::Node" do ast = -> { 1 + 1 }.to_ast expect(ast).to be_a(Parser::AST::Node) expect(ast.type).to eq(:block) end context "proc variation" do it "converts Kernel#proc" do pr = proc { p 1 } expect(pr.to_ast).to be_a(AST::Node) end it "converts Proc.new" do pr = Proc.new do |b| puts b end expect(pr.to_ast).to be_a(AST::Node) end it "converts block passing method" do def receive_block(&block) block.to_ast end block_pass = receive_block do |n| puts n [1, 2, 3].map do |i| i * 2 end end block_pass2 = receive_block { %w(a b c).map(&:upcase) } expect(block_pass).to be_a(AST::Node) expect(block_pass2).to be_a(AST::Node) end it "raise ProcToAst::MultiMatchError, when other block exists on same line " do _ = [1].map {|i| i * 2}; fuga = ->(a) { p a } expect{ fuga.to_ast }.to raise_error(ProcToAst::MultiMatchError) end end end describe "#to_source" do it "return source code string" do fuga = ->(a) { p a } expect(fuga.to_source).to eq("lambda do |a|\n p(a)\nend") expect(fuga.to_source(highlight: true)).to eq("lambda \e[32mdo\e[0m |a|\n p(a)\n\e[32mend\e[0m") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
proc_to_ast-0.0.3 | spec/proc_to_ast_spec.rb |
proc_to_ast-0.0.2 | spec/proc_to_ast_spec.rb |