summaryrefslogtreecommitdiff
path: root/app/controllers/controller_extension
diff options
context:
space:
mode:
authorAzul <azul@leap.se>2014-07-12 09:12:48 +0200
committerAzul <azul@leap.se>2014-07-17 12:47:47 +0200
commitb17387a17669bfc9afce7435653cd8c29c686999 (patch)
tree70410bf1df84d88a2c400c7e5c2a78e4550d0126 /app/controllers/controller_extension
parentade74d8a9091ae607586d7b287a0579a2ee7af8e (diff)
some cleanup of the messages api and cuke feature
Diffstat (limited to 'app/controllers/controller_extension')
-rw-r--r--app/controllers/controller_extension/json_responses.rb29
1 files changed, 29 insertions, 0 deletions
diff --git a/app/controllers/controller_extension/json_responses.rb b/app/controllers/controller_extension/json_responses.rb
new file mode 100644
index 0000000..da1ae58
--- /dev/null
+++ b/app/controllers/controller_extension/json_responses.rb
@@ -0,0 +1,29 @@
+module ControllerExtension::JsonResponses
+ extend ActiveSupport::Concern
+
+ private
+
+ def success(key)
+ json_message :success, key
+ end
+
+ def error(key)
+ json_message :error, key
+ end
+
+ def json_message(type, key)
+ long_key = "#{controller_string}.#{action_string}.#{key}"
+ { type => key.to_s,
+ :message => I18n.t(long_key, cascade: true) }
+ end
+
+ def controller_string
+ self.class.name.underscore.
+ sub(/_controller$/, '').
+ sub(/^v\d\//, '')
+ end
+
+ def action_string
+ params[:action]
+ end
+end