glib-web 0.3.10 → 0.3.11

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: 12c6f0412005aeff7117e83650cd6df244565451044f9813d04914bb5ade0b57
4
- data.tar.gz: d7ab3a02df1aaef6aeaf9edfd24744c5ceb334067f37958fd1da50fd1663f3ae
3
+ metadata.gz: 69432dcf32db57ac795c618f216d7e2bd36b564b13872700135271b88e80c02c
4
+ data.tar.gz: c9adde3694e7663e5dc422bd8271649a9ca07095ba4397f1ccbb80b6b3a4c972
5
5
  SHA512:
6
- metadata.gz: bd5d4772eac30d21ab0cec9d81eb2445f7e752de2d29cb8e94118a823bbcaae2cfe77219bf2f77441e0929adbb4d31fcda9de9ed1694fca9122c34540e9acfd3
7
- data.tar.gz: a28093f3bea1e7deaa8a9f992f4c7a3f589a9fc7730ef712163349187fd5977f22bb385ed9cd10bd04c74863c42527b6b8cc73c40db4f900da52d1df205bc975
6
+ metadata.gz: 9d7b997aa956b6905ee1224f47af35314ed936894acb4f49373c8e0af987c12757e0f9b24983ea6288531bbe64877e9a8dff025c3f38a0e883c592710a4d5097
7
+ data.tar.gz: 8f749848943c2d2236a174851947238379c874dc4257359f7e0e6348711809972afaebfd29059e14ced9d2a709317bb9988204a192ce39b9c2ca83c19735f52a
@@ -1,4 +1,5 @@
1
- module Concerns::Application::Json::Libs
1
+ # TODO: Deprecate
2
+ module Application::Json::Libs
2
3
  extend ActiveSupport::Concern
3
4
 
4
5
  included do
@@ -27,7 +28,7 @@ module Concerns::Application::Json::Libs
27
28
  def json_ui_app_is_android?
28
29
  json_ui_app_device_os == 'android'
29
30
  end
30
-
31
+
31
32
  def json_ui_app_is_ios?
32
33
  json_ui_app_device_os == 'ios'
33
34
  end
@@ -41,9 +42,9 @@ module Concerns::Application::Json::Libs
41
42
  module ClassMethods
42
43
 
43
44
  def json_libs_init(options)
44
- include Concerns::Application::Json::Transformation
45
- include Concerns::Application::Json::Validation
46
- include Concerns::Application::Json::Ui
45
+ include Application::Json::Transformation
46
+ include Application::Json::Validation
47
+ include Application::Json::Ui
47
48
 
48
49
  before_action :__json_ui_start
49
50
 
@@ -54,7 +55,7 @@ module Concerns::Application::Json::Libs
54
55
  after_action :__json_transformation_commit
55
56
  after_action :__json_validate_perform
56
57
  end
57
-
58
+
58
59
  def json_libs_set_locale
59
60
  before_action do
60
61
  # Need to explicitly fallback to EN
@@ -63,7 +64,7 @@ module Concerns::Application::Json::Libs
63
64
  I18n.locale = :en
64
65
  end
65
66
  end
66
-
67
+
67
68
  def json_libs_force_json_ui
68
69
  before_action do
69
70
  if params[:_render] != 'v1'
@@ -72,17 +73,17 @@ module Concerns::Application::Json::Libs
72
73
  end
73
74
  end
74
75
 
75
- def json_libs_rescue_csrf
76
+ def json_libs_rescue_csrf
76
77
  rescue_from ActionController::InvalidAuthenticityToken do |exception|
77
78
  sign_out(:user)
78
79
 
79
80
  respond_to do |format|
80
81
  format.json do
81
- render json: {
82
- onResponse: {
82
+ render json: {
83
+ onResponse: {
83
84
  action: 'windows/open-v1',
84
85
  url: root_url
85
- }
86
+ }
86
87
  }
87
88
  end
88
89
  end
@@ -1,4 +1,4 @@
1
- module Concerns::Application::Json::Transformation
1
+ module Application::Json::Transformation
2
2
  def json_transformation_start
3
3
  if request.format == 'json'
4
4
  @__transformed_json ||= JSON.parse(response.body) rescue nil
@@ -1,4 +1,4 @@
1
- module Concerns::Application::Json::Ui
1
+ module Application::Json::Ui
2
2
  extend ActiveSupport::Concern
3
3
 
4
4
  included do
@@ -1,4 +1,4 @@
1
- module Concerns::Application::Json::Validation
1
+ module Application::Json::Validation
2
2
  def __json_validate_perform
3
3
  if Rails.env.development? && params[:_validate] == 'true'
4
4
  if (hash = json_transformation_start).is_a?(Hash)
@@ -0,0 +1,93 @@
1
+ module Glib::Json::Libs
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ extend ClassMethods
6
+
7
+ helper_method :json_ui_app_bundle_id, :json_ui_app_build_version, :json_ui_app_device_os
8
+ helper_method :json_ui_app_is_android?, :json_ui_app_is_ios?, :json_ui_app_is_web?
9
+ end
10
+
11
+ def json_ui_app_bundle_id
12
+ @json_ui_app_bundle_id ||= request.headers['JsonUiApp-Bundle-Id']
13
+ end
14
+
15
+ def json_ui_app_build_version
16
+ @json_ui_app_build_version ||= request.headers['JsonUiApp-Build-Version']
17
+ @json_ui_app_build_version = params[:build_version] if @json_ui_app_build_version.nil? && Rails.env.development? # For easy testing
18
+ @json_ui_app_build_version
19
+ end
20
+
21
+ def json_ui_app_device_os
22
+ @json_ui_app_device_os ||= request.headers['JsonUiApp-Device-Os']
23
+ @json_ui_app_device_os = params[:device_os] if @json_ui_app_device_os.nil? && Rails.env.development? # For easy testing
24
+ @json_ui_app_device_os || 'web'
25
+ end
26
+
27
+ def json_ui_app_is_android?
28
+ json_ui_app_device_os == 'android'
29
+ end
30
+
31
+ def json_ui_app_is_ios?
32
+ json_ui_app_device_os == 'ios'
33
+ end
34
+
35
+ def json_ui_app_is_web?
36
+ json_ui_app_device_os == 'web'
37
+ end
38
+
39
+
40
+
41
+ module ClassMethods
42
+
43
+ def json_libs_init(options)
44
+ include Glib::Json::Transformation
45
+ include Glib::Json::Validation
46
+ include Glib::Json::Ui
47
+
48
+ before_action :__json_ui_start
49
+
50
+ # Note that after_action gets executed in reverse
51
+ after_action do
52
+ __json_ui_commit(options)
53
+ end
54
+ after_action :__json_transformation_commit
55
+ after_action :__json_validate_perform
56
+ end
57
+
58
+ def json_libs_set_locale
59
+ before_action do
60
+ # Need to explicitly fallback to EN
61
+ I18n.locale = params[:_locale] || :en
62
+ rescue
63
+ I18n.locale = :en
64
+ end
65
+ end
66
+
67
+ def json_libs_force_json_ui
68
+ before_action do
69
+ if params[:_render] != 'v1'
70
+ redirect_to url_for(params.to_unsafe_h.merge(_render: 'v1'))
71
+ end
72
+ end
73
+ end
74
+
75
+ def json_libs_rescue_csrf
76
+ rescue_from ActionController::InvalidAuthenticityToken do |exception|
77
+ sign_out(:user)
78
+
79
+ respond_to do |format|
80
+ format.json do
81
+ render json: {
82
+ onResponse: {
83
+ action: 'windows/open-v1',
84
+ url: root_url
85
+ }
86
+ }
87
+ end
88
+ end
89
+ end
90
+ end
91
+
92
+ end
93
+ end
@@ -0,0 +1,11 @@
1
+ module Glib::Json::Transformation
2
+ def json_transformation_start
3
+ if request.format == 'json'
4
+ @__transformed_json ||= JSON.parse(response.body) rescue nil
5
+ end
6
+ end
7
+
8
+ def __json_transformation_commit
9
+ response.body = @__transformed_json.to_json if @__transformed_json
10
+ end
11
+ end
@@ -0,0 +1,66 @@
1
+ module Glib::Json::Ui
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ rescue_from ActionController::UnknownFormat do |exception|
6
+ if json_ui_activated?
7
+ # Tell `__json_ui_start()` to avoid rendering this page while still retaining the `_render` param
8
+ # so that the page remains linking to other json_ui pages.
9
+ redirect_to url_for(format: nil, _skip_render: true)
10
+ else
11
+ raise exception
12
+ end
13
+ end
14
+ end
15
+
16
+ # Override
17
+ def form_authenticity_token
18
+ Rails.env.test? ? 'test_token' : super
19
+ end
20
+
21
+ # NOTE: Override default_url_options and call this method
22
+ def json_ui_url_options
23
+ options = {}
24
+ options[:_render] = params[:_render]
25
+ options[:_locale] = params[:_locale]
26
+ options[:format] = :json if request.format == :json
27
+ options
28
+ end
29
+
30
+ def json_ui_activated?
31
+ @__json_ui_activated
32
+ end
33
+
34
+ def __json_ui_start
35
+ @__json_ui_activated = false
36
+ @__json_ui_rendering = false
37
+ if params[:_render].present?
38
+ @__json_ui_activated = true
39
+ request.variant = :ui
40
+
41
+ if request.format.html? && params[:_skip_render] != 'true'
42
+ @__json_ui_rendering = true
43
+ request.format = 'json'
44
+ end
45
+ end
46
+ end
47
+
48
+ def __json_ui_commit(options)
49
+ if @__json_ui_rendering
50
+ if (hash = json_transformation_start).is_a?(Hash)
51
+ case params[:_render]
52
+ when 'v1'
53
+ __json_ui_vue(hash, options)
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ private
60
+
61
+ def __json_ui_vue(hash, options)
62
+ renderer_path = options[:renderer_path]
63
+ @__json_ui_orig_page = response.body
64
+ response.body = render_to_string(template: renderer_path, layout: false, content_type: 'text/html', locals: { page: hash, options: options })
65
+ end
66
+ end
@@ -0,0 +1,13 @@
1
+ module Glib::Json::Validation
2
+ def __json_validate_perform
3
+ if Rails.env.development? && params[:_validate] == 'true'
4
+ if (hash = json_transformation_start).is_a?(Hash)
5
+ json_validate = JSONValidate.new(hash)
6
+ response_message = json_validate.valid?
7
+ hash[:_json] = {
8
+ validationErrors: response_message
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.10
4
+ version: 0.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -14,16 +14,22 @@ dependencies:
14
14
  name: activestorage
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 6.0.0
19
+ version: 5.2.3
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: 6.1.0
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 5.2.3
30
+ - - "<"
25
31
  - !ruby/object:Gem::Version
26
- version: 6.0.0
32
+ version: 6.1.0
27
33
  description:
28
34
  email: ''
29
35
  executables: []
@@ -34,6 +40,10 @@ files:
34
40
  - app/controllers/concerns/application/json/transformation.rb
35
41
  - app/controllers/concerns/application/json/ui.rb
36
42
  - app/controllers/concerns/application/json/validation.rb
43
+ - app/controllers/concerns/glib/json/libs.rb
44
+ - app/controllers/concerns/glib/json/transformation.rb
45
+ - app/controllers/concerns/glib/json/ui.rb
46
+ - app/controllers/concerns/glib/json/validation.rb
37
47
  - app/controllers/glib/home_controller.rb
38
48
  - app/helpers/glib/dynamic_texts_helper.rb
39
49
  - app/helpers/glib/json_ui/abstract_builder.rb