class JRuby::Lint::Checkers::Gemspec
Public Class Methods
new()
click to toggle source
# File lib/jruby/lint/checkers/gemspec.rb, line 8 def initialize @gemspec_block_var = nil end
Public Instance Methods
visitCallNode(node)
click to toggle source
# File lib/jruby/lint/checkers/gemspec.rb, line 12 def visitCallNode(node) # Gem::Specification.new do |s| => # # CallNoArgBlockNode |new| # Colon2ConstNode |Specification| # IterNode # DAsgnNode |s| &0 >0 # NilImplicitNode |nil| # BlockNode if node.name == :new && # new node.args_node.nil? && # no args node.iter_node && # with a block node.receiver_node.node_type.to_s == "COLON2NODE" && # :: - Colon2 node.receiver_node.name == :Specification && # ::Specification node.receiver_node.left_node.name == :Gem # Gem::Specification arg_node = find_first(node.iter_node.var_node) {|n| n.respond_to?(:name) } @gemspec_block_var = arg_node.name return proc { @gemspec_block_var = nil } end # s.add_dependency "rdiscount" => # # CallOneArgNode |add_dependency| # DVarNode |s| &0 >0 # ArrayNode # StrNode =="rdiscount" if @gemspec_block_var && node.name == :add_dependency && node.receiver_node.name == @gemspec_block_var check_gem(collector, node) end rescue end