Class: Preview::PreviewProcessor

Inherits:
Object
  • Object
show all
Defined in:
lib/preview/preview_processor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(controllerKlass, options = {}) ⇒ PreviewProcessor

Returns a new instance of PreviewProcessor.



6
7
8
9
10
11
# File 'lib/preview/preview_processor.rb', line 6

def initialize controllerKlass, options={}
  @controller = controllerKlass                         # the class name of controller
  @modelKlass = model_for @controllerName               # the class name of the corresponding model
  @actions = options[:actions] || [:create, :update]
  @template = options[:template] || "show"
end

Instance Attribute Details

#actionsObject

Returns the value of attribute actions.



4
5
6
# File 'lib/preview/preview_processor.rb', line 4

def actions
  @actions
end

#controllerObject

Returns the value of attribute controller.



4
5
6
# File 'lib/preview/preview_processor.rb', line 4

def controller
  @controller
end

#modelKlassObject

Returns the value of attribute modelKlass.



4
5
6
# File 'lib/preview/preview_processor.rb', line 4

def modelKlass
  @modelKlass
end

#templateObject

Returns the value of attribute template.



4
5
6
# File 'lib/preview/preview_processor.rb', line 4

def template
  @template
end

Instance Method Details

#process(request) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/preview/preview_processor.rb', line 13

def process request
  controllerInstance = request.env["action_controller.instance"]
  params = controllerInstance.params
  
  data = params[@modelKlass.to_s.downcase]      
  modelObj = @modelKlass.new(data)
  modelObj.id = params[:id].to_i
  
  instanceVariable = ("@" + @modelKlass.to_s.downcase).to_sym
  controllerInstance.instance_variable_set(instanceVariable, modelObj)
end