Module: Action
- Defined in:
- lib/dsl.rb
Class Method Summary collapse
Instance Method Summary collapse
- #content_type ⇒ Object
- #content_type=(type) ⇒ Object
- #file?(file) ⇒ Boolean
- #session ⇒ Object
- #session=(value) ⇒ Object
- #session_clear ⇒ Object
- #status_code ⇒ Object
- #status_code=(code) ⇒ Object
- #tempfile(file) ⇒ Object
- #tempfiles ⇒ Object
Class Method Details
.extended(obj) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/dsl.rb', line 32 def self.extended obj obj.instance_variable_set(:@session, {}) obj.instance_variable_set(:@content_type, nil) obj.instance_variable_set(:@status_code, 200) obj.instance_variable_set(:@tempfiles, []) end |
.fire(action, params, session) ⇒ Object
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/dsl.rb', line 69 def self.fire(action, params, session) obj = Object obj.extend Action obj.extend BodyWriter obj.content_type = action[:content_type] || :txt obj.session = session ps = action[:action].parameters.map{|_, name| {name => params[name]} }.inject({}, :merge) result = execute(obj, ps, action[:action]) unless result[:executed] obj.status_code = 400 obj.body = "Not given enough parameter" obj.content_type = :txt end obj.tempfiles.each{|f| f.close } obj end |
Instance Method Details
#content_type ⇒ Object
62 |
# File 'lib/dsl.rb', line 62 def content_type; @content_type; end |
#content_type=(type) ⇒ Object
65 |
# File 'lib/dsl.rb', line 65 def content_type=(type); @content_type = type; end |
#file?(file) ⇒ Boolean
39 40 41 |
# File 'lib/dsl.rb', line 39 def file? file file.is_a? Hash end |
#session ⇒ Object
60 |
# File 'lib/dsl.rb', line 60 def session; @session; end |
#session=(value) ⇒ Object
61 |
# File 'lib/dsl.rb', line 61 def session=(value); @session = value; end |
#session_clear ⇒ Object
55 56 57 58 |
# File 'lib/dsl.rb', line 55 def session_clear session.clear session = nil end |
#status_code ⇒ Object
64 |
# File 'lib/dsl.rb', line 64 def status_code; @status_code; end |
#status_code=(code) ⇒ Object
66 |
# File 'lib/dsl.rb', line 66 def status_code=(code); @status_code = code; end |
#tempfile(file) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/dsl.rb', line 43 def tempfile file if file.is_a? Hash file[:tempfile].path else f = Tempfile.open(SecureRandom.hex(4)) f.write file f.flush @tempfiles.push f f.path end end |
#tempfiles ⇒ Object
63 |
# File 'lib/dsl.rb', line 63 def tempfiles; @tempfiles; end |