module Seatbelt::Synthesizeable
Public Instance Methods
synthesize(options)
click to toggle source
Public: Defines a synthesizer for the implementation class. It takes an Hash argument to define the class the object should by synthesized and an additional adapter.
options - A Hash containing synthesize configurations
:from - The class the implementation and proxy object has to synthesized (String or Constant) :adapter- An optional class name that points to a implemented Synthesizer. Defaults to Seatbelt::Synthesizers::Document
# File lib/seatbelt/core/synthesizeable.rb, line 32 def synthesize(options) klass_to_synthesize = options[:from] synthesize_adapter = options.fetch(:adapter, "Seatbelt::Synthesizers::Document") synthesize_adapter = Module.const_get(synthesize_adapter) unless klass_to_synthesize.respond_to?(:name) klass_to_synthesize = Module.const_get(klass_to_synthesize) end synthesize_obj = {:klass => klass_to_synthesize.name, :adapter => synthesize_adapter} klass_to_synthesize.class.class_eval do def synthesizers @synthesizers ||= [] end end klass_to_synthesize.synthesizers << synthesize_obj end
synthesize_map(map=nil)
click to toggle source
Public: Combined getter and setter for a map of attributes that should be used for synthesizing the proxy and the implementation object.
map=nil - a Hash of proxy attributes as keys and implementation object
attributes as values.
If map is nil, it returns the synthesize map (or an Empty hash if not previously set).
# File lib/seatbelt/core/synthesizeable.rb, line 13 def synthesize_map(map=nil) if map.nil? return @synthesize_map ||={} else @synthesize_map=map end end
synthesizers()
click to toggle source
# File lib/seatbelt/core/synthesizeable.rb, line 43 def synthesizers @synthesizers ||= [] end