tramway-api 1.8.6.12 → 1.8.6.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c7fde28a2dba38baca9b59921296f203bee015e5065567cbfc8c818e49c15c9
4
- data.tar.gz: e54a9190f07f0f3b78485f6667d1585a2847ec4ae0503e14362afe5a60cafbe3
3
+ metadata.gz: 6ca5bbce598b65c6fb0dec505e188231b9c54d58b0969d051c86d6db6036d20b
4
+ data.tar.gz: ffe9fcb8a71069a74053d894738d61b45b214d232514296cb48323be9cfb3e8f
5
5
  SHA512:
6
- metadata.gz: 34d26aaadfe0f49d721903fabe39147b4c577cd74c3a8b0983435a5066121950a73915f9ea242adde527d2964bc24891ddf0e3ce523f797ad94a91cd7ae18cce
7
- data.tar.gz: 8e51f5fb8e026a090a086d3f293356bdf35c272d5dc0dc5382ec4f2500735824e7a7770f4cf1ea591b5586dbe2c1f960adbfbc188f95b4fc432376a3b56a2847
6
+ metadata.gz: db32e275c1fe0475cc0207b8b43d6789f5d611b5210863389e151a165171645e235d9b7f101a8494035378f9d7eba743c5c84de8b24f83709066ef5e986d50db
7
+ data.tar.gz: 50683c4c9c361680a73faba41569e72d660060e0111e2c6f447b3ae496f59745142712b8291ed292d0de577f1151254a7c523f785e69265cd72c6950a01783c2
@@ -6,10 +6,38 @@ module Tramway
6
6
  include ::Knock::Authenticable
7
7
  protect_from_forgery with: :null_session, if: proc { |c| c.request.format == 'application/json' }
8
8
  rescue_from ActiveRecord::RecordNotFound, with: :not_found if Rails.env.production?
9
- before_action :application
9
+ before_action :load_application
10
+
11
+ def load_application
12
+ if engine_loaded(request).present?
13
+ build_application_with_engine engine_loaded request
14
+ elsif application_class(request).present?
15
+ @application = application_class(request).camelize.constantize.first
16
+ else
17
+ @application = application_object request
18
+ end
19
+ end
10
20
 
11
21
  private
12
22
 
23
+ def build_application_with_engine(engine_loaded)
24
+ engine_module = "::Tramway::#{engine_loaded.camelize}".constantize
25
+ @application = "#{engine_module}::#{engine_module.application.to_s.camelize}".constantize.first
26
+ @application_engine = engine_loaded
27
+ end
28
+
29
+ def application_class(request)
30
+ Constraints::DomainConstraint.new(request.domain).application_class
31
+ end
32
+
33
+ def engine_loaded(request)
34
+ Constraints::DomainConstraint.new(request.domain).engine_loaded
35
+ end
36
+
37
+ def application_object(request)
38
+ Constraints::DomainConstraint.new(request.domain).application_object
39
+ end
40
+
13
41
  def not_found
14
42
  render json: { data: [] }, status: :not_found
15
43
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Tramway
4
4
  module Api
5
- VERSION = '1.8.6.12'
5
+ VERSION = '1.8.6.13'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tramway-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.6.12
4
+ version: 1.8.6.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pavel Kalashnikov