kea-on-rails 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f70d714fafb87fc116f21429a38b1e2715949750
4
+ data.tar.gz: 3b3d782a74b3626bce748883816dae76286bec14
5
+ SHA512:
6
+ metadata.gz: 9335007566ac986749f255a2b975a0735c9f391baba51614b5ebb98fcf3489e25caac5f275e210b4678c7df52686d11ba577a1c9ae06327fd6bea70cb2d7453c
7
+ data.tar.gz: 83d64bab5c2e0e9fefca21f9accabfa740be8ecbe9fac7da04f10e5ace9e61d7bc9f0f207752e2bf5bc51839dde06056d42d5bfbab2318d6b0a1fb6ac6862953
@@ -0,0 +1,21 @@
1
+ module Kea
2
+ module Controller
3
+ attr_accessor :running_via_kea
4
+
5
+ def run_kea_action
6
+ active_method = params['method']
7
+ @running_via_kea = true
8
+ self.send(active_method)
9
+ end
10
+
11
+ protected
12
+
13
+ def params
14
+ if @running_via_kea
15
+ request.params['params']
16
+ else
17
+ request.params
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,7 @@
1
+ module Kea
2
+ class ErrorController < ActionController::Base
3
+ def render_kea_error
4
+ render json: {error: env['KEA_ERROR']}
5
+ end
6
+ end
7
+ end
data/lib/kea/router.rb ADDED
@@ -0,0 +1,32 @@
1
+ module Kea
2
+ class Router
3
+ def self.do_route
4
+ new
5
+ end
6
+
7
+ def initialize
8
+ end
9
+
10
+ def call(env)
11
+ @env = env
12
+ params = (@env['rack.request.form_hash'] || Rack::Utils.parse_nested_query(@env['QUERY_STRING'])).deep_symbolize_keys
13
+
14
+ begin
15
+ @endpoint = params[:endpoint].classify.constantize
16
+
17
+ unless @endpoint.ancestors.include? Kea::Controller
18
+ return render_error({endpoint: 'does not descend from Kea::Controller'})
19
+ end
20
+ rescue => e
21
+ return render_error({exception: e.message})
22
+ end
23
+
24
+ @endpoint.action(:run_kea_action).call(env)
25
+ end
26
+
27
+ def render_error(error)
28
+ @env['KEA_ERROR'] = error
29
+ Kea::ErrorController.action(:render_kea_error).call(@env)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,3 @@
1
+ require 'kea/controller'
2
+ require 'kea/error_controller'
3
+ require 'kea/router'
metadata ADDED
@@ -0,0 +1,47 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kea-on-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
+ platform: ruby
6
+ authors:
7
+ - Marius Andra
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-03-16 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: Rails connector for kea and kea-rails-loader
14
+ email: marius.andra@gmail.com
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/kea-on-rails.rb
20
+ - lib/kea/controller.rb
21
+ - lib/kea/error_controller.rb
22
+ - lib/kea/router.rb
23
+ homepage: https://github.com/mariusandra/kea-rails
24
+ licenses:
25
+ - MIT
26
+ metadata: {}
27
+ post_install_message:
28
+ rdoc_options: []
29
+ require_paths:
30
+ - lib
31
+ required_ruby_version: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ required_rubygems_version: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ requirements: []
42
+ rubyforge_project:
43
+ rubygems_version: 2.5.1
44
+ signing_key:
45
+ specification_version: 4
46
+ summary: Rails connector for kea and kea-rails-loader
47
+ test_files: []