Method: JsDuck::Accessors#create
- Defined in:
- lib/jsduck/accessors.rb
#create(cls) ⇒ Object
Given a class, generates accessor methods to configs with When class already contains a getter or setter, the method is not added.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/jsduck/accessors.rb', line 10 def create(cls) # Grab all configs tagged as @accessor accessors = cls[:members][:cfg].find_all {|cfg| cfg[:accessor] } # Build lookup tables of method and event names methods = build_lookup_table(cls[:members][:method]) events = build_lookup_table(cls[:members][:event]) accessors.each do |cfg| # add getter if no method with same name exists get = create_getter(cfg) if !methods[get[:name]] cls[:members][:method] << get end # add setter if no method with same name exists set = create_setter(cfg) if !methods[set[:name]] cls[:members][:method] << set end # for evented accessors if cfg[:evented] # add event if no event with same name exists ev = create_event(cfg) if !events[ev[:name]] cls[:members][:event] << ev end end end end |