Class: Gloo::WebSvr::EmbeddedRenderer
- Inherits:
- 
      Object
      
        - Object
- Gloo::WebSvr::EmbeddedRenderer
 
- Defined in:
- lib/gloo/web_svr/embedded_renderer.rb
Constant Summary collapse
- HELPER =
- 'helper'.freeze 
Instance Attribute Summary collapse
- 
  
    
      #engine  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute engine. 
- 
  
    
      #log  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute log. 
- 
  
    
      #web_svr_obj  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute web_svr_obj. 
Instance Method Summary collapse
- 
  
    
      #initialize(engine, web_svr_obj)  ⇒ EmbeddedRenderer 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Set up the web server. 
- 
  
    
      #method_missing(method_name, *args)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Handle a missing method by looking for a helper function. 
- 
  
    
      #render(content, params)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Render content with the given params. 
Constructor Details
#initialize(engine, web_svr_obj) ⇒ EmbeddedRenderer
Set up the web server.
| 24 25 26 27 28 29 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 24 def initialize( engine, web_svr_obj ) @engine = engine @log = @engine.log @web_svr_obj = web_svr_obj end | 
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
Handle a missing method by looking for a helper function. If there is one, then call it and return the result. If not, log an error and return nil.
| 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 41 def method_missing( method_name, *args ) @log.debug "missing method '#{method_name}' with args #{args}" helper_pn = "#{HELPER}.#{method_name}" @log.debug "looking for function: #{helper_pn}" pn = Gloo::Core::Pn.new( @engine, helper_pn ) obj = pn.resolve if obj @log.debug "found obj: #{obj.pn}" return obj.invoke args else @log.error "Function not found: #{helper_pn}" end return nil end | 
Instance Attribute Details
#engine ⇒ Object (readonly)
Returns the value of attribute engine.
| 14 15 16 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 14 def engine @engine end | 
#log ⇒ Object (readonly)
Returns the value of attribute log.
| 14 15 16 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 14 def log @log end | 
#web_svr_obj ⇒ Object (readonly)
Returns the value of attribute web_svr_obj.
| 14 15 16 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 14 def web_svr_obj @web_svr_obj end | 
Instance Method Details
#render(content, params) ⇒ Object
Render content with the given params. Params might be nil, in which case the content is returned with no changes.
| 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | # File 'lib/gloo/web_svr/embedded_renderer.rb', line 69 def render content, params # If the params is nil, let's make it an empty hash. params = {} unless params # Get the binding context for this render. b = binding # Add the params to the binding context. params.each_pair do |key, value| b.local_variable_set key.to_sym, value end # Render in the current binding content. renderer = ERB.new( content ) content = renderer.result( b ) return content end |