tzispa_helpers 0.3.3 → 0.3.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 258ac692a120498a6c674cc1a2c8c3a25e0efe05
4
- data.tar.gz: ba449f0b62e81ab21ac2db99c1563f8da8332cc4
3
+ metadata.gz: ff5ee9fd3dbe5599f7ba42bace28922feb0c8ce4
4
+ data.tar.gz: ddfc4699dd6ee7e4b84a5cb0dbf122d4f6531862
5
5
  SHA512:
6
- metadata.gz: 915c48be23cab2d230c591e559608f5b3df88705f699f23579fd8f5f6c6b500992667be8a9a9a36391991c3e4605779ed40a02902f75e58ea503337c73be9116
7
- data.tar.gz: 3192166cfeb384c3030ccfc886ffb8c3682e0b09bf5b1ef01f6294d9affaffb568b335b80f5d65643a1ee712ce2130c4c53c1c5dcdf94e88a59a399646c83ebb
6
+ metadata.gz: 30ad6c7d0682f26e51958570daeae58ab0e3a8da45a2ecd4749b0ec0193a6761e40959aa9600dc38513aa6d2a6490ce95954b05d0ce228d363860cd02a5aa7b1
7
+ data.tar.gz: df205ac43b8b2be62d400379e298bf42c9539c30edb733faa037977e7fff742e9cb89bb9f238898863d5a050b18bed42c20a4e0d67142f28df5e0a26d8027b3b
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  Tzispa Helpers
2
2
 
3
+ ## v0.3.4
4
+ - added macro_field helper
5
+ - added user login related helper module
6
+
3
7
  ## v0.3.3
4
8
  - added str_to_integer text helper macro
5
9
 
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Tzispa
4
+ module Helpers
5
+ module Login
6
+
7
+ def login_redirect
8
+ context.redirect(context.layout_path(context.config.login_layout.to_sym), true, context.response) if login_redirect?
9
+ end
10
+
11
+ def login_redirect?
12
+ !context.logged? && (context.layout != context.config.login_layout)
13
+ end
14
+
15
+ def unauthorized_but_logged
16
+ context.not_authorized unless context.logged?
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,58 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'tzispa/utils/string'
4
+ require 'json'
5
+ require_relative 'text'
6
+
7
+ module Tzispa
8
+ module Helpers
9
+ module MacroField
10
+
11
+ include Tzispa::Helpers::Text
12
+ using Tzispa::Utils::TzString
13
+
14
+ def process_macros(source, fields, data_object: nil, json: nil)
15
+ (data_object || {}).tap do |data|
16
+ fields.each do |name|
17
+ macro_field = name.split('@:')
18
+ macro = macro_field.first.to_sym if macro_field.length == 2
19
+ field = macro_field.length == 2 ? macro_field.last : macro_field.first
20
+ build_field source, field, macro, data
21
+ end
22
+ json&.each do |key, value|
23
+ data.send "#{key}=", build_json_field(source, value)
24
+ end
25
+ end
26
+ end
27
+
28
+ def build_field(source, field, macro, data)
29
+ field.split(':').tap do |orig, dest|
30
+ dest ||= orig
31
+ value = if String == source[orig]
32
+ String.unescape_html(source[orig])
33
+ else
34
+ source[orig]
35
+ end
36
+ value = macro ? send(macro, value) : value
37
+ if data.is_a? ::Hash
38
+ data[dest.to_sym] = value
39
+ else
40
+ data.send "#{dest}=".to_sym, value
41
+ end
42
+ end
43
+ end
44
+
45
+ def build_json_field(source, values)
46
+ {}.tap do |data|
47
+ values.each do |name|
48
+ macro_field = name.split('@:')
49
+ macro = macro_field.first.to_sym if macro_field.length == 2
50
+ field = macro_field.length == 2 ? macro_field.last : macro_field.first
51
+ build_field source, field, macro, data
52
+ end
53
+ end.to_json
54
+ end
55
+
56
+ end
57
+ end
58
+ end
@@ -2,36 +2,32 @@
2
2
 
3
3
  require 'tzispa/utils/string'
4
4
  require 'json'
5
+ require_relative 'macro_field'
5
6
 
6
7
  module Tzispa
7
8
  module Helpers
8
9
  module Request
9
10
 
10
- using Tzispa::Utils::TzString
11
+ include Tzispa::Helpers::MacroField
12
+
13
+ def request_json(key = nil)
14
+ return unless request.content_type&.include?('application/json')
15
+ body = request.body.gets
16
+ key ? JSON.parse(body)[key] : JSON.parse(body)
17
+ end
18
+
19
+ def request_json_object(key = nil, data_object:, fields:, json: nil)
20
+ process_macros request_json(key), fields, data_object: data_object,
21
+ json: json
22
+ end
11
23
 
12
24
  def request_data(fields)
13
- {}.tap do |data|
14
- fields.each do |name|
15
- macro_field = name.split('@:')
16
- macro = macro_field.first.to_sym if macro_field.length == 2
17
- field = macro_field.length == 2 ? macro_field.last : macro_field.first
18
- build_field field, macro, data
19
- end
20
- end
25
+ process_macros request, fields
21
26
  end
22
27
 
23
28
  def request_data_object(data_object:, fields:, json: nil)
24
- data_object.tap do |data|
25
- fields.each do |name|
26
- macro_field = name.split('@:')
27
- macro = macro_field.first.to_sym if macro_field.length == 2
28
- field = macro_field.length == 2 ? macro_field.last : macro_field.first
29
- build_field field, macro, data
30
- end
31
- json&.each do |key, value|
32
- data.send "#{key}=", build_json_field(value)
33
- end
34
- end
29
+ process_macros request, fields, data_object: data_object,
30
+ json: json
35
31
  end
36
32
 
37
33
  def request_file_upload(request_file:, destination_path:, save_as: nil, keep_ext: true)
@@ -53,34 +49,6 @@ module Tzispa
53
49
  size: ::File.size(dest_file), type: filetype }
54
50
  end
55
51
 
56
- def build_field(field, macro, data)
57
- field.split(':').tap do |src, dest|
58
- dest ||= src
59
- value = if String == request[src]
60
- String.unescape_html(request[src])
61
- else
62
- request[src]
63
- end
64
- value = macro ? send(macro, value) : value
65
- if data.is_a? ::Hash
66
- data[dest.to_sym] = value
67
- else
68
- data.send "#{dest}=".to_sym, value
69
- end
70
- end
71
- end
72
-
73
- def build_json_field(values)
74
- {}.tap do |data|
75
- values.each do |name|
76
- macro_field = name.split('@:')
77
- macro = macro_field.first.to_sym if macro_field.length == 2
78
- field = macro_field.length == 2 ? macro_field.last : macro_field.first
79
- build_field field, macro, data
80
- end
81
- end.to_json
82
- end
83
-
84
52
  end
85
53
  end
86
54
  end
@@ -3,7 +3,7 @@
3
3
  module Tzispa
4
4
  module Helpers
5
5
 
6
- VERSION = '0.3.3'
6
+ VERSION = '0.3.4'
7
7
  NAME = 'Tzispa Helpers'
8
8
  GEM_NAME = 'tzispa_helpers'
9
9
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tzispa_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Antonio Piñero
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-02 00:00:00.000000000 Z
11
+ date: 2017-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -67,6 +67,8 @@ files:
67
67
  - lib/tzispa/helpers/hooks/after.rb
68
68
  - lib/tzispa/helpers/hooks/before.rb
69
69
  - lib/tzispa/helpers/html.rb
70
+ - lib/tzispa/helpers/login.rb
71
+ - lib/tzispa/helpers/macro_field.rb
70
72
  - lib/tzispa/helpers/mime.rb
71
73
  - lib/tzispa/helpers/pattern.rb
72
74
  - lib/tzispa/helpers/provider.rb