Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 8953

Show
Ignore:
Timestamp:
02/29/08 14:01:54 (7 months ago)
Author:
tobie
Message:

pdoc: finalize support for argument description.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/pdoc/trunk/CHANGELOG

    r8952 r8953  
     1* Finalize support for argument description [Tobie] 
     2 
    13* Add initial support for argument description [Tobie] 
    24 
  • spinoffs/pdoc/trunk/lib/p_doc/parser.rb

    r8952 r8953  
    22require 'treetop' 
    33 
    4 %w[basic tags argument description ebnf_arguments ebnf_expression section_content documentation].each do |s| 
     4%w[basic tags argument_description description ebnf_arguments ebnf_expression section_content documentation].each do |s| 
    55  require "#{s}_nodes" 
    66end 
    77 
    8 %w[basic argument tags description ebnf_javascript ebnf_arguments ebnf_expression section_content documentation].each do |s| 
     8%w[basic argument_description tags description ebnf_javascript ebnf_arguments ebnf_expression section_content documentation].each do |s| 
    99  Treetop.load File.expand_path(File.join(PARSER_DIR, "treetop_files", s)) 
    1010end 
  • spinoffs/pdoc/trunk/lib/p_doc/parser/documentation_nodes.rb

    r8944 r8953  
    224224      ebnf_expressions.first.namespace 
    225225    end 
     226     
     227    def arguments 
     228      arguments_definitions.elements 
     229    end 
    226230  end 
    227231   
  • spinoffs/pdoc/trunk/lib/p_doc/parser/treetop_files/documentation.treetop

    r8944 r8953  
    11grammar Documentation 
    22  include Tags 
     3  include ArgumentDescription 
    34  include Description 
    45  include SectionContent 
     
    1819   
    1920  rule constructor_doc 
    20     start ebnf:(line constructor)+ text comment_end <Constructor> 
     21    start ebnf:(line constructor)+ arguments_definitions text comment_end <Constructor> 
    2122  end 
    2223   
     
    3031 
    3132  rule klass_method_doc 
    32     start ebnf:(line klass_method)+ text comment_end <KlassMethod> 
     33    start ebnf:(line klass_method)+ arguments_definitions text comment_end <KlassMethod> 
    3334  end 
    3435   
    3536  rule instance_method_doc 
    36     start ebnf:(line instance_method)+ text comment_end <InstanceMethod> 
     37    start ebnf:(line instance_method)+ arguments_definitions text comment_end <InstanceMethod> 
    3738  end 
    3839   
     
    5051   
    5152  rule utility_doc 
    52     start ebnf:(line utility)+ text comment_end <Utility> 
     53    start ebnf:(line utility)+ arguments_definitions text comment_end <Utility> 
    5354  end 
    5455   
     
    6061    comment_start space* (tags)? 
    6162  end 
    62  
    63   rule argument_desc 
    64     line '-' js_variable space* types:(arg_types)? space* ':' space* (.)
     63   
     64  rule arguments_definitions 
     65    argument_description
    6566  end 
    66  
    67   rule arg_types 
    68     "(" first:arg_type more:(arg_type space* ',')* ")" 
    69   end 
    70  
    71   rule arg_type 
    72     [\w]+ 
    73   end 
    74    
    7567end 
  • spinoffs/pdoc/trunk/test/fixtures/ajax.js

    r8944 r8953  
    4242/**  
    4343 * Element#setStyle(@element, styles) -> Element 
     44 * - element (String, Element): an id or DOM node 
     45 * - styles (String, Object, Hash): can be either a regular CSS string or 
     46 *     a hash or regular object, in which case, properties need to be camelized 
    4447 * Sets the style of element 
    4548 * and returns it 
  • spinoffs/pdoc/trunk/test/test_helper.rb

    r8944 r8953  
    3636  end 
    3737end 
     38 
     39# Stolen from Rails 
     40unless :test.respond_to?(:to_proc) 
     41  class Symbol 
     42    # Turns the symbol into a simple proc, which is especially useful for enumerations. Examples: 
     43    # 
     44    #   # The same as people.collect { |p| p.name } 
     45    #   people.collect(&:name) 
     46    # 
     47    #   # The same as people.select { |p| p.manager? }.collect { |p| p.salary } 
     48    #   people.select(&:manager?).collect(&:salary) 
     49    def to_proc 
     50      Proc.new { |*args| args.shift.__send__(self, *args) } 
     51    end 
     52  end 
     53end 
  • spinoffs/pdoc/trunk/test/unit/documentation_test.rb

    r8944 r8953  
    2424   
    2525  def test_globals 
    26     assert_equal %w[$ $$ Ajax Element Enumerable String Toggle], fixtures.globals.map{|g| g.name}.sort 
     26    assert_equal %w[$ $$ Ajax Element Enumerable String Toggle], fixtures.globals.map(&:name).sort 
    2727  end 
    2828   
    2929  def test_descendants 
    3030    assert_equal %w[$ $$ Ajax Base Element Enumerable Request Responders String Toggle], 
    31       fixtures.descendants.map{|d| d.name}.sort 
     31      fixtures.descendants.map(&:name).sort 
    3232  end 
    3333   
    3434  def test_mixins 
    35     assert_equal %w[Enumerable], fixtures.mixins.map{|g| g.name} 
     35    assert_equal %w[Enumerable], fixtures.mixins.map(&:name) 
    3636  end 
    3737   
    3838  def test_sections 
    39     assert_equal %w[ajax dom lang],                fixtures.sections.map{|s| s.name} 
    40     assert_equal [Section, Section, Section],      fixtures.sections.map{ |s| s.class } 
    41     assert_equal %w[Ajax],                         fixtures.sections.first.children.map{|d| d.name} 
    42     assert_equal %w[Ajax Base Request Responders], fixtures.sections.first.descendants.map{|d| d.name} 
     39    assert_equal %w[ajax dom lang],                fixtures.sections.map(&:name) 
     40    assert_equal [Section, Section, Section],      fixtures.sections.map(&:class) 
     41    assert_equal %w[Ajax],                         fixtures.sections.first.children.map(&:name) 
     42    assert_equal %w[Ajax Base Request Responders], fixtures.sections.first.descendants.map(&:name) 
    4343  end 
    4444   
     
    6363    assert                                !fixture.deprecated? 
    6464    assert                                !fixture.alias? 
    65     assert_equal %w[getTransport],         fixture.klass_methods.map{|m| m.name} 
    66     assert_equal %w[activeRequestCount],   fixture.klass_properties.map{|m| m.name} 
     65    assert_equal %w[getTransport],         fixture.klass_methods.map(&:name) 
     66    assert_equal %w[activeRequestCount],   fixture.klass_properties.map(&:name) 
    6767    assert_equal [],                       fixture.instance_methods 
    6868    assert_equal [],                       fixture.instance_properties 
    6969    assert_equal [],                       fixture.related_utilities 
    7070    assert_equal "ajax",                   fixture.doc_parent.name 
    71     assert_equal %w[ajax],                 fixture.ancestors.map{|a| a.name } 
    72     assert_equal %w[Base Request Responders], fixture.children.map{|m| m.name} 
    73     assert_equal %w[Base Request Responders], fixture.descendants.map{|m| m.name} 
     71    assert_equal %w[ajax],                 fixture.ancestors.map(&:name) 
     72    assert_equal %w[Base Request Responders], fixture.children.map(&:name) 
     73    assert_equal %w[Base Request Responders], fixture.descendants.map(&:name) 
    7474     
    7575    fixture = fixtures.find_by_name("Ajax.Responders") 
    7676    assert_equal Namespace,                fixture.class 
    7777    assert                                !fixture.mixin? 
    78     assert_equal ["Enumerable"],           fixture.mixins.map{|m| m.name} 
    79     assert_equal [Mixin],                  fixture.mixins.map{|m| m.class} 
     78    assert_equal ["Enumerable"],           fixture.mixins.map(&:name) 
     79    assert_equal [Mixin],                  fixture.mixins.map(&:class) 
    8080    assert_equal "Responders",             fixture.name 
    8181    assert_equal "ajax",                   fixture.section.name 
     
    8585    assert                                !fixture.alias? 
    8686    assert_equal "Ajax",                   fixture.doc_parent.name 
    87     assert_equal %w[Ajax ajax],            fixture.ancestors.map{|a| a.name } 
     87    assert_equal %w[Ajax ajax],            fixture.ancestors.map(&:name) 
    8888    assert_equal [],                       fixture.children 
    8989    assert_equal [],                       fixture.descendants 
     
    100100    assert_equal [],                       fixture.klass_methods 
    101101    assert_equal [],                       fixture.klass_properties 
    102     assert_equal ["each"],                 fixture.instance_methods.map{|m| m.name} 
     102    assert_equal ["each"],                 fixture.instance_methods.map(&:name) 
    103103    assert_equal [],                       fixture.instance_properties 
    104104    assert_equal [],                       fixture.related_utilities 
    105105    assert_equal "lang",                   fixture.doc_parent.name 
    106     assert_equal %w[lang],                 fixture.ancestors.map{|a| a.name } 
     106    assert_equal %w[lang],                 fixture.ancestors.map(&:name) 
    107107    assert_equal [],                       fixture.children 
    108108    assert_equal [],                       fixture.descendants 
     
    116116    assert_equal "Ajax.Base",              fixture.full_name 
    117117    assert_equal [],                       fixture.mixins 
    118     assert_equal %w[Request],              fixture.subklasses.map{|s| s.name } 
     118    assert_equal %w[Request],              fixture.subklasses.map(&:name) 
    119119    assert                                !fixture.mixin? 
    120120    assert                                !fixture.subklass? 
     
    132132    assert_equal [],                       fixture.related_utilities 
    133133    assert_equal "Ajax",                   fixture.doc_parent.name 
    134     assert_equal %w[Ajax ajax],            fixture.ancestors.map{|a| a.name } 
     134    assert_equal %w[Ajax ajax],            fixture.ancestors.map(&:name) 
    135135    assert_equal [],                       fixture.children 
    136136    assert_equal [],                       fixture.descendants 
     
    155155    assert_equal [],                       fixture.klass_methods 
    156156    assert_equal [],                       fixture.methodized_methods 
    157     assert_equal %w[classProp],            fixture.klass_properties.map{|k| k.name} 
    158     assert_equal %w[request success],      fixture.instance_methods.map{|k| k.name} 
    159     assert_equal %w[dummy],                fixture.instance_properties.map{|k| k.name} 
    160     assert_equal %w[Events],               fixture.constants.map{|k| k.name} 
     157    assert_equal %w[classProp],            fixture.klass_properties.map(&:name) 
     158    assert_equal %w[request success],      fixture.instance_methods.map(&:name) 
     159    assert_equal %w[dummy],                fixture.instance_properties.map(&:name) 
     160    assert_equal %w[Events],               fixture.constants.map(&:name) 
    161161    assert_equal [],                       fixture.related_utilities 
    162162    assert_equal "Ajax",                   fixture.doc_parent.name 
    163     assert_equal %w[Ajax ajax],            fixture.ancestors.map{|a| a.name } 
     163    assert_equal %w[Ajax ajax],            fixture.ancestors.map(&:name) 
    164164    assert_equal [],                       fixture.children 
    165165    assert_equal [],                       fixture.descendants 
     
    168168    assert_equal Klass,                    fixture.class 
    169169    assert_equal [],                       fixture.klass_methods 
    170     assert_equal %w[setStyle],             fixture.methodized_methods.map{|k| k.name} 
     170    assert_equal %w[setStyle],             fixture.methodized_methods.map(&:name) 
    171171    assert_equal [],                       fixture.klass_properties 
    172     assert_equal %w[bar foo setStyle],     fixture.instance_methods.map{|k| k.name} 
     172    assert_equal %w[bar foo setStyle],     fixture.instance_methods.map(&:name) 
    173173    assert_equal [],                       fixture.instance_properties 
    174     assert_equal %w[$],                    fixture.related_utilities.map{|k| k.name} 
     174    assert_equal %w[$],                    fixture.related_utilities.map(&:name) 
    175175    assert_equal "dom",                    fixture.doc_parent.name 
    176     assert_equal %w[dom],                  fixture.ancestors.map{|a| a.name } 
     176    assert_equal %w[dom],                  fixture.ancestors.map(&:name) 
    177177    assert_equal [],                       fixture.children 
    178178    assert_equal [],                       fixture.descendants 
     
    180180    fixture = fixtures.find_by_name("String") 
    181181    assert_equal Klass,                    fixture.class 
    182     assert_equal %w[interpret],            fixture.klass_methods.map{|k| k.name} 
     182    assert_equal %w[interpret],            fixture.klass_methods.map(&:name) 
    183183  end 
    184184   
     
    198198    assert                                !fixture.alias? 
    199199    assert_equal "String",                 fixture.doc_parent.name 
    200     assert_equal %w[String lang],          fixture.ancestors.map{|a| a.name } 
     200    assert_equal %w[String lang],          fixture.ancestors.map(&:name) 
    201201    assert_equal [],                       fixture.children 
    202202    assert_equal [],                       fixture.descendants 
     
    214214    assert                                !fixture.alias? 
    215215    assert_equal "Ajax",                   fixture.doc_parent.name 
    216     assert_equal %w[Ajax ajax],            fixture.ancestors.map{|a| a.name } 
     216    assert_equal %w[Ajax ajax],            fixture.ancestors.map(&:name) 
    217217    assert_equal [],                       fixture.children 
    218218    assert_equal [],                       fixture.descendants 
     
    234234    assert                                !fixture.alias? 
    235235    assert_equal "Request",                fixture.doc_parent.name 
    236     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     236    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    237237    assert_equal [],                       fixture.children 
    238238    assert_equal [],                       fixture.descendants 
     
    252252    assert                                !fixture.alias? 
    253253    assert_equal "dom",                    fixture.doc_parent.name 
    254     assert_equal %w[dom],                  fixture.ancestors.map{|a| a.name } 
     254    assert_equal %w[dom],                  fixture.ancestors.map(&:name) 
    255255    assert_equal [],                       fixture.children 
    256256    assert_equal [],                       fixture.descendants 
     
    278278    assert                                !fixture.alias? 
    279279    assert_equal "Request",                fixture.doc_parent.name 
    280     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     280    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    281281    assert_equal [],                       fixture.children 
    282282    assert_equal [],                       fixture.descendants 
     
    296296    assert                                !fixture.alias? 
    297297    assert_equal "Request",                fixture.doc_parent.name 
    298     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     298    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    299299    assert_equal [],                       fixture.children 
    300300    assert_equal [],                       fixture.descendants 
     
    316316    assert                                !fixture.alias? 
    317317    assert_equal "Request",                fixture.doc_parent.name 
    318     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     318    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    319319    assert_equal [],                       fixture.children 
    320320    assert_equal [],                       fixture.descendants 
     
    337337    assert                                !fixture.methodized? 
    338338    assert_equal "Request",                fixture.doc_parent.name 
    339     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     339    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    340340    assert_equal [],                       fixture.children 
    341341    assert_equal [],                       fixture.descendants 
     
    356356    assert                                 fixture.methodized? 
    357357    assert_equal "Element",                fixture.doc_parent.name 
    358     assert_equal %w[Element dom],          fixture.ancestors.map{|a| a.name } 
     358    assert_equal %w[Element dom],          fixture.ancestors.map(&:name) 
    359359    assert_equal [],                       fixture.children 
    360360    assert_equal [],                       fixture.descendants 
     
    377377    assert                                !fixture.methodized? 
    378378    assert_equal "Request",                fixture.doc_parent.name 
    379     assert_equal %w[Request Ajax ajax],    fixture.ancestors.map{|a| a.name } 
     379    assert_equal %w[Request Ajax ajax],    fixture.ancestors.map(&:name) 
    380380    assert_equal [],                       fixture.children 
    381381    assert_equal [],                       fixture.descendants 
     
    394394    assert                                 fixture.deprecated? 
    395395    assert                                !fixture.alias? 
    396     assert_equal %w[display foo],          fixture.klass_methods.map{|m| m.name} 
     396    assert_equal %w[display foo],          fixture.klass_methods.map(&:name) 
    397397    assert_equal [],                       fixture.klass_properties 
    398398    assert_equal [],                       fixture.instance_methods 
     
    400400    assert_equal [],                       fixture.related_utilities 
    401401    assert_equal "dom",                    fixture.doc_parent.name 
    402     assert_equal %w[dom],                  fixture.ancestors.map{|a| a.name } 
    403     assert_equal %w[],                     fixture.children.map{|a| a.name } 
    404     assert_equal %w[],                     fixture.descendants.map{|a| a.name } 
     402    assert_equal %w[dom],                  fixture.ancestors.map(&:name) 
     403    assert_equal %w[],                     fixture.children.map(&:name) 
     404    assert_equal %w[],                     fixture.descendants.map(&:name) 
    405405     
    406406    fixture = fixtures.find_by_name("Toggle.display") 
     
    416416    assert                                !fixture.alias? 
    417417    assert_equal "Toggle",                 fixture.doc_parent.name 
    418     assert_equal %w[Toggle dom],           fixture.ancestors.map{|a| a.name } 
     418    assert_equal %w[Toggle dom],           fixture.ancestors.map(&:name) 
    419419    assert_equal [],                       fixture.children 
    420420    assert_equal [],                       fixture.descendants 
     
    432432    assert                                !fixture.alias? 
    433433    assert_equal "Toggle",                 fixture.doc_parent.name 
    434     assert_equal %w[Toggle dom],           fixture.ancestors.map{|a| a.name } 
     434    assert_equal %w[Toggle dom],           fixture.ancestors.map(&:name) 
    435435    assert_equal [],                       fixture.children 
    436436    assert_equal [],                       fixture.descendants 
     
    442442  end 
    443443   
     444  def test_argument_definitions 
     445    fixture = fixtures.find_by_name("Element#setStyle") 
     446    assert_equal %w[element styles],       fixture.arguments.map(&:name) 
     447    assert_equal %w[String Element],       fixture.arguments.first.types 
     448    assert_equal "an id or DOM node",      fixture.arguments.first.description 
     449    assert_equal %w[String Object Hash],   fixture.arguments.last.types 
     450    assert_equal "can be either a regular CSS string or a hash or regular object, in which case, properties need to be camelized", 
     451      fixture.arguments.last.description 
     452     
     453    assert_equal [],                       fixtures.find_by_name("Element#foo").arguments 
     454  end 
     455   
    444456  def test_aliases 
    445457    fixture = fixtures.find_by_name("Element#setStyle") 
     
    449461     
    450462    fixture = fixtures.find_by_name("Element#foo") 
    451     assert_equal ["bar"],                  fixture.aliases.map{|a| a.name} 
     463    assert_equal ["bar"],                  fixture.aliases.map(&:name) 
    452464    assert                                !fixture.alias? 
    453465    assert_equal nil,                      fixture.alias_of  
    454466     
    455467    fixture = fixtures.find_by_name("Element#bar") 
    456     assert_equal [],                       fixture.aliases.map{|a| a.name} 
     468    assert_equal [],                       fixture.aliases.map(&:name) 
    457469    assert                                 fixture.alias? 
    458470    assert_equal "foo",                    fixture.alias_of.name 
  • spinoffs/pdoc/trunk/test/unit/ebnf_arguments_test.rb

    r8944 r8953  
    1212    assert_parsed "  " 
    1313    assert_parsed "" 
    14     assert_equal [], parse("    ").to_a.map{|arg| arg.name} 
     14    assert_equal [], parse("    ").to_a.map(&:name) 
    1515  end 
    1616     
     
    2727    assert_parsed "foo  , bar" 
    2828    assert_parsed "foo  , bar" 
    29     assert_equal ["foo", "bar"], parse("foo,bar").to_a.map{|arg| arg.name} 
     29    assert_equal ["foo", "bar"], parse("foo,bar").to_a.map(&:name) 
    3030  end 
    3131   
     
    5252   assert_parsed "[foo][,bar]" 
    5353   assert_parsed "[ foo ] [   ,  bar ]" 
    54    assert_equal ["foo", "bar"], parse("[foo][,bar]").to_a.map{|arg| arg.name} 
     54   assert_equal ["foo", "bar"], parse("[foo][,bar]").to_a.map(&:name) 
    5555 end 
    5656  
     
    6060   assert_parsed "hello,world[,foo][,bar=43]" 
    6161   assert_parsed "hello  ,  world [ ,  foo ] [   ,  bar=43 ]" 
    62    assert_equal ["foo", "bar"], parse("[foo],bar").to_a.map{|arg| arg.name} 
     62   assert_equal ["foo", "bar"], parse("[foo],bar").to_a.map(&:name) 
    6363   assert_equal "content", parse("hello[,content]").to_a.last.name 
    6464   assert_equal "content", parse("hello[,content=foo]").to_a.last.name 
  • spinoffs/pdoc/trunk/test/unit/ebnf_expression_test.rb

    r8944 r8953  
    4949    assert_equal "$",                          parse(ebnf).full_name 
    5050    assert_equal nil,                          parse(ebnf).klass_name 
    51     assert_equal %w[element],                  parse(ebnf).arguments.map { |arg| arg.name } 
     51    assert_equal %w[element],                  parse(ebnf).arguments.map(&:name) 
    5252    assert_equal "Element | Array",            parse(ebnf).returns 
    5353    assert_equal ebnf,                         parse(ebnf).to_s 
     
    6262    assert_equal "Element.update",             parse(ebnf).full_name 
    6363    assert_equal "Element",                    parse(ebnf).klass_name 
    64     assert_equal %w[element content],          parse(ebnf).arguments.map { |arg| arg.name } 
     64    assert_equal %w[element content],          parse(ebnf).arguments.map(&:name) 
    6565    assert_equal "Element",                    parse(ebnf).returns 
    6666    assert_equal ebnf,                         parse(ebnf).to_s 
     
    7575    assert_equal "Element#update",             parse(ebnf).full_name 
    7676    assert_equal "Element",                    parse(ebnf).klass_name 
    77     assert_equal %w[content],                  parse(ebnf).arguments.map { |arg| arg.name } 
     77    assert_equal %w[content],                  parse(ebnf).arguments.map(&:name) 
    7878    assert_equal "Element",                    parse(ebnf).returns 
    7979    assert_equal ebnf,                         parse(ebnf).to_s 
     
    8888    assert_equal "new Element",                parse(ebnf).full_name 
    8989    assert_equal "Element",                    parse(ebnf).klass_name 
    90     assert_equal %w[tagName attributes],       parse(ebnf).arguments.map { |arg| arg.name } 
     90    assert_equal %w[tagName attributes],       parse(ebnf).arguments.map(&:name) 
    9191    assert_equal ebnf,                         parse(ebnf).to_s 
    9292     
     
    9898    assert_equal "new Ajax.Request",           parse(ebnf).full_name 
    9999    assert_equal "Request",                    parse(ebnf).klass_name 
    100     assert_equal %w[url options],              parse(ebnf).arguments.map { |arg| arg.name } 
     100    assert_equal %w[url options],              parse(ebnf).arguments.map(&:name) 
    101101    assert_equal ebnf,                         parse(ebnf).to_s 
    102102  end 
     
    140140    ebnf = "class Array\n * includes: Enumerable" 
    141141    assert_parsed ebnf 
    142     assert_equal %w[Enumerable],               parse(ebnf).mixins.map{|m| m.name} 
    143     assert_equal [""],                         parse(ebnf).mixins.map{|m| m.namespace} 
     142    assert_equal %w[Enumerable],               parse(ebnf).mixins.map(&:name) 
     143    assert_equal [""],                         parse(ebnf).mixins.map(&:namespace) 
    144144    assert_equal ebnf,                         parse(ebnf).to_s 
    145145     
    146146    ebnf = "class Array\n * includes: Enumerable, Foo.Comparable" 
    147147    assert_parsed ebnf 
    148     assert_equal %w[Enumerable Comparable],    parse(ebnf).mixins.map{|m| m.name} 
    149     assert_equal ["", "Foo"],                  parse(ebnf).mixins.map{|m| m.namespace} 
     148    assert_equal %w[Enumerable Comparable],    parse(ebnf).mixins.map(&:name) 
     149    assert_equal ["", "Foo"],                  parse(ebnf).mixins.map(&:namespace) 
    150150    assert_equal ebnf,                         parse(ebnf).to_s 
    151151  end 
     
    179179    assert_equal "Ajax",                       parse(ebnf).full_name 
    180180    assert_equal nil,                          parse(ebnf).klass_name 
    181     assert_equal %w[Enumerable],               parse(ebnf).mixins.map{|m| m.name} 
    182     assert_equal [""],                         parse(ebnf).mixins.map{|m| m.namespace} 
     181    assert_equal %w[Enumerable],               parse(ebnf).mixins.map(&:name) 
     182    assert_equal [""],                         parse(ebnf).mixins.map(&:namespace) 
    183183    assert_equal ebnf,                         parse(ebnf).to_s 
    184184  end 
     
    233233    assert_equal 2,                     parse(ebnf).arguments.length 
    234234    assert_equal 2,                     parse(ebnf_with_space).arguments.length 
    235     assert_equal ["event", "selector"], parse(ebnf).arguments.map { |arg| arg.name } 
    236     assert_equal [nil, nil],            parse(ebnf).arguments.map { |arg| arg.default_value } 
    237     assert_equal [false, false],        parse(ebnf).arguments.map { |arg| arg.optional? } 
     235    assert_equal ["event", "selector"], parse(ebnf).arguments.map(&:name) 
     236    assert_equal [nil, nil],            parse(ebnf).arguments.map(&:default_value) 
     237    assert_equal [false, false],        parse(ebnf).arguments.map(&:optional?) 
    238238  end 
    239239   
     
    272272    assert_equal 2,                     parse(ebnf).arguments.length 
    273273    assert_equal 2,                     parse(ebnf_with_space).arguments.length 
    274     assert_equal ["selector", "index"], parse(ebnf).arguments.map { |arg| arg.name } 
    275     assert_equal [nil, "0"],            parse(ebnf).arguments.map { |arg| arg.default_value } 
    276     assert_equal [true, true],          parse(ebnf).arguments.map { |arg| arg.optional? } 
     274    assert_equal ["selector", "index"], parse(ebnf).arguments.map(&:name) 
     275    assert_equal [nil, "0"],            parse(ebnf).arguments.map(&:default_value) 
     276    assert_equal [true, true],          parse(ebnf).arguments.map(&:optional?) 
    277277  end 
    278278   
     
    285285    assert_equal 3,                                parse(ebnf).arguments.length 
    286286    assert_equal 3,                                parse(ebnf_with_space).arguments.length 
    287     assert_equal ["element", "selector", "index"], parse(ebnf).arguments.map { |arg| arg.name } 
    288     assert_equal [nil, nil, "0"],                  parse(ebnf).arguments.map { |arg| arg.default_value } 
    289     assert_equal [false, true, true],              parse(ebnf).arguments.map { |arg| arg.optional? } 
     287    assert_equal ["element", "selector", "index"], parse(ebnf).arguments.map(&:name) 
     288    assert_equal [nil, nil, "0"],                  parse(ebnf).arguments.map(&:default_value) 
     289    assert_equal [false, true, true],              parse(ebnf).arguments.map(&:optional?) 
    290290  end 
    291291   
     
    301301    assert_equal 3,                                parse(ebnf).arguments.length 
    302302    assert_equal 3,                                parse(ebnf_with_space).arguments.length 
    303     assert_equal ["element", "selector", "index"], parse(ebnf).arguments.map { |arg| arg.name } 
    304     assert_equal [nil, nil, "0"],                  parse(ebnf).arguments.map { |arg| arg.default_value } 
    305     assert_equal [false, true, true],              parse(ebnf).arguments.map { |arg| arg.optional? } 
    306     assert_equal ["selector", "index"],            parse(ebnf).methodized_arguments.map { |arg| arg.name } 
    307     assert_equal [nil, "0"],                       parse(ebnf).methodized_arguments.map { |arg| arg.default_value } 
    308     assert_equal [true, true],                     parse(ebnf).methodized_arguments.map { |arg| arg.optional? } 
     303    assert_equal ["element", "selector", "index"], parse(ebnf).arguments.map(&:name) 
     304    assert_equal [nil, nil, "0"],                  parse(ebnf).arguments.map(&:default_value) 
     305    assert_equal [false, true, true],              parse(ebnf).arguments.map(&:optional?) 
     306    assert_equal ["selector", "index"],            parse(ebnf).methodized_arguments.map(&:name) 
     307    assert_equal [nil, "0"],                       parse(ebnf).methodized_arguments.map(&:default_value) 
     308    assert_equal [true, true],                     parse(ebnf).methodized_arguments.map(&:optional?) 
    309309  end 
    310310end