tzispa_rig 0.4.3 → 0.4.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: 953838ad7ff4dc81e2d53ab993ea62f1f61dcfad
4
- data.tar.gz: ae90857aed0a33de9ca50e7d88a7deb53c9ab989
3
+ metadata.gz: d7bcd3c23e2bd1422bb4063c90fb5f2c13ad89c0
4
+ data.tar.gz: 0ae585b5ee37682149e6f20a760c73f5306bafc6
5
5
  SHA512:
6
- metadata.gz: da5cf6bbeb89a01411e741fdf07ba4ee4af9a88f3a01ad0bc3345203fc41b6ccecdbe5b15518cb3df497166a00276e3753a36fccbc04814d56ca2baf1cf444ec
7
- data.tar.gz: 73d8d78d7a2177af5693e9c393f3686bfdba6113ec5dec1ea6fd0b354363c9395c52d79dcd726ae18ad9ca375b26888858618d7c16d21fdb792217952179cc22
6
+ metadata.gz: 2b19ba2bb38467fd667744d9ae63f9f7b914b25f9cdeb109681b95822702bfa7cc04f2d67269bad1bc0424a5b0b2cf4a4443b89c1beb17df3766d25635576f18
7
+ data.tar.gz: 361177bf1bb749c7653c767ebbaaeefdc02c9989091bf23a0a2d3c19bd6087fc34624eb33bc651d88896b78427f2ae3203a3a54abbb3638a6efa645e9db1e0b1
data/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@ Tzispa Rig
2
2
 
3
3
  Rig templates implementation
4
4
 
5
+ ## v0.4.4
6
+ - add session,router_params,not_found&logger delegators to make template binders less contextized
7
+ - remove unused gem dependencies and code (old parser)
8
+
5
9
  ## v0.4.3
6
10
  - add config and repository delegators into context
7
11
  - updated rig templates documentation
@@ -14,15 +14,16 @@ module Tzispa
14
14
  class Binder
15
15
  extend Forwardable
16
16
 
17
- attr_reader :context, :dataStruct, :tags, :parser
17
+ attr_reader :context, :data_struct, :tags, :parser
18
18
  def_delegators :@parser, :attribute_tags
19
- def_delegators :@context, :app, :request, :response, :repository, :config
19
+ def_delegators :@context, :app, :request, :response, :session, :router_params, :not_found
20
+ def_delegators :app, :repository, :config, :logger
20
21
 
21
22
 
22
23
  def initialize(parser, context)
23
24
  @parser = parser
24
25
  @context = context
25
- @dataStruct = attribute_tags.count > 0 ? Struct.new(*attribute_tags) : Struct.new(nil)
26
+ @data_struct = attribute_tags.count > 0 ? Struct.new(*attribute_tags) : Struct.new(nil)
26
27
  end
27
28
 
28
29
  alias :tags :attribute_tags
@@ -69,7 +70,7 @@ module Tzispa
69
70
  end
70
71
 
71
72
  def data(**params)
72
- (@data ||= @dataStruct.new).tap { |d|
73
+ (@data ||= @data_struct.new).tap { |d|
73
74
  params.each{ |k,v|
74
75
  raise UnknownTag.new "#{k} is not a tag in #{self.class.name}" unless tags.include? k
75
76
  d[k] = v
@@ -123,7 +124,7 @@ module Tzispa
123
124
 
124
125
  def initialize(binder)
125
126
  @context = binder.context
126
- @data = binder.dataStruct.new
127
+ @data = binder.data_struct.new
127
128
  end
128
129
 
129
130
  end
@@ -173,11 +173,11 @@ module Tzispa
173
173
 
174
174
  def create_binder
175
175
  ::File.open("#{domain.path}/#{binder_require}.rb", "w") { |f|
176
- f.puts new_binder_code
176
+ f.puts write_binder_code
177
177
  } if @type == :block
178
178
  end
179
179
 
180
- def new_binder_code
180
+ def write_binder_code
181
181
  Tzispa::Utils::Indenter.new(2).tap { |binder_code|
182
182
  binder_code << "require 'tzispa/rig/binder'\n\n"
183
183
  level = 0
@@ -3,7 +3,7 @@
3
3
  module Tzispa
4
4
  module Rig
5
5
 
6
- VERSION = '0.4.3'
6
+ VERSION = '0.4.4'
7
7
  GEM_NAME = 'tzispa_rig'
8
8
 
9
9
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tzispa_rig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.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: 2016-11-07 00:00:00.000000000 Z
11
+ date: 2016-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: tzispa_helpers
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: 0.1.3
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: 0.1.3
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: tzispa_utils
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -65,7 +51,6 @@ files:
65
51
  - lib/tzispa/rig/binder.rb
66
52
  - lib/tzispa/rig/engine.rb
67
53
  - lib/tzispa/rig/parameters.rb
68
- - lib/tzispa/rig/parser.rb
69
54
  - lib/tzispa/rig/parsernext.rb
70
55
  - lib/tzispa/rig/syntax.rb
71
56
  - lib/tzispa/rig/template.rb
@@ -1,165 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'tzispa/rig/engine'
4
- require 'tzispa/rig/formatter'
5
- require 'tzispa/helpers/security'
6
-
7
- module Tzispa
8
- module Rig
9
- class Parser
10
-
11
- include Tzispa::Helpers::Security
12
-
13
- EMPTY_STRING = ''.freeze
14
-
15
- attr_reader :text
16
-
17
- RIG_SYNTAX = {
18
- :re_flags => /<flags:(\[(\w+=[^,\]]+(,\w+=[^,\]]+)*?)\])\/>/.freeze,
19
- :blk => /<(blk):(\w+(?:\.\w+)?)(?:\[(\w+=[^,\]]+(?:,\w+=[^,\]]+)*)\])?\/>/.freeze,
20
- :iblk => /<(iblk):(\w+):(\w+(?:\.\w+)?)(?:\[(\w+=[^,\]]+(?:,\w+=[^,\]]+)*)\])?:(\w+(?:\.\w+)?)(?:\[(\w+=[^,\]]+(?:,\w+=[^,\]]+)*)\])?\/>/.freeze,
21
- :static => /<(static):(\w+(?:\.\w+)?)(?:\[(\w+=[^,\]]+(?:,\w+=[^,\]]+)*)\])?\/>/.freeze,
22
- :re_var => /<var(\[%[A-Z]?[0-9]*[a-z]\])?:(\w+)\/>/.freeze,
23
- :re_metavar => /\{%([^%]+?)%\}/.freeze,
24
- :re_loop => /<loop:(\w+)>(.*?)<\/loop:\1>/m.freeze,
25
- :re_ife => /<ife:(\w+)>(.*?)(<else:\1\/>(.*?))?<\/ife:\1>/m.freeze,
26
- :re_purl => /<purl:(\w+)(\[(\w+=[^,\]]+(,\w+=[^,\]]+)*?)\])?\/>/.freeze,
27
- :re_api => /<sapi:(\w+(?:\.\w+)?):(\w+)(?::([^:]+))?(?::([^\/]+))?\/>/.freeze
28
- }
29
-
30
- def initialize(engine, binder=nil, text=nil)
31
- @engine = engine
32
- @binder = binder || engine.binder
33
- @context = engine.context
34
- @text = text
35
- end
36
-
37
- def parse!
38
- @text ||= @engine.content
39
- @binder.bind! if @binder && @binder.respond_to?( :bind! )
40
- if @engine.type == :block
41
- parseStatement
42
- parseExpression
43
- end
44
- parseBlock
45
- self
46
- end
47
-
48
-
49
- private
50
-
51
- def parseExpression
52
- parseMetavar
53
- parseVar
54
- parsePurl
55
- parseAPI
56
- end
57
-
58
- def parseStatement
59
- parseLoop
60
- parseIfe
61
- end
62
-
63
- def parseFlags
64
- @text.gsub!(RIG_SYNTAX[:re_flags]) { |match|
65
- flags = Regexp.last_match(1)
66
- @engine.flags = flags
67
- EMPTY_STRING
68
- }
69
- end
70
-
71
- def parseLoop
72
- @text.gsub!(RIG_SYNTAX[:re_loop]) { |match|
73
- loopid = Regexp.last_match(1)
74
- loopbody = Regexp.last_match(2)
75
- lenrig = @binder.respond_to?("#{loopid}") ? @binder.send("#{loopid}") : []
76
- lenrig.respond_to?(:map) ? lenrig.map { |item| Parser.new(@engine, item, loopbody.dup).parse!.text }.join : String.new.freeze
77
- }
78
- end
79
-
80
- def parseIfe
81
- @text.gsub!(RIG_SYNTAX[:re_ife]) { |match|
82
- ifetest = Regexp.last_match(1)
83
- test = @binder.respond_to?("#{ifetest}") ? @binder.send("#{ifetest}") : false
84
- ifebody = Regexp.last_match(2)
85
- elsebody = Regexp.last_match(4)
86
- Parser.new(@engine, @binder, test ? "#{ifebody}" : "#{elsebody}").parse!.text
87
- }
88
- end
89
-
90
- def parseMetavar
91
- @text.gsub!(RIG_SYNTAX[:re_metavar]) { |match|
92
- varid = Regexp.last_match(1)
93
- if @context.respond_to?(varid)
94
- @context.send(varid)
95
- elsif !@context.env.nil? and !@context.env[varid].nil?
96
- @context.env[varid]
97
- elsif @binder.respond_to?(varid)
98
- @binder.send(varid)
99
- else
100
- Formatter.unknown(varid)
101
- end
102
- }
103
- end
104
-
105
- def parseVar
106
- @text.gsub!(RIG_SYNTAX[:re_var]) { |match|
107
- fmt = Regexp.last_match(1)
108
- varid = Regexp.last_match(2)
109
- value = @binder.respond_to?(varid) ? @binder.send(varid) : Formatter.unknown(varid)
110
- Formatter.rigvar(value, fmt)
111
- }
112
- end
113
-
114
- def parsePurl
115
- @text.gsub!(RIG_SYNTAX[:re_purl]) { |match|
116
- urlid = Regexp.last_match[1]
117
- urlparams = Parameters.new(Regexp.last_match[3])
118
- @engine.app.router_path urlid.to_sym, urlparams.data
119
- }
120
- end
121
-
122
- def parseAPI
123
- @text.gsub!(RIG_SYNTAX[:re_api]) { |match|
124
- handler, verb, predicate, sufix = Regexp.last_match[1], Regexp.last_match[2], Regexp.last_match[3], Regexp.last_match[4]
125
- sign = Parser.sign_array [handler, verb, predicate], @engine.app.config.salt
126
- @engine.app.router_path :api, {handler: handler, verb: verb, predicate: predicate, sign: sign, sufix: sufix}
127
- }
128
- end
129
-
130
- def parseBlock
131
- reBlocks = Regexp.new(RIG_SYNTAX[:re_blk].to_s + '|' + RIG_SYNTAX[:re_iblk].to_s + '|' + RIG_SYNTAX[:re_static].to_s)
132
-
133
- @text.gsub!(reBlocks) {
134
- strtype = (Regexp.last_match[2] || '') << (Regexp.last_match[7] || '') << (Regexp.last_match[16] || '')
135
- case strtype
136
- when 'blk'
137
- rigtype = :block
138
- rigname = Regexp.last_match[3]
139
- rigparams = Regexp.last_match[5]
140
- when 'iblk'
141
- rigtype = :block
142
- rigtest = Regexp.last_match[8]
143
- if (@binder.respond_to?("#{rigtest}?") ? @binder.send("#{rigtest}?") : false)
144
- rigname = Regexp.last_match[9]
145
- rigparams = Regexp.last_match[11]
146
- else
147
- rigname = Regexp.last_match[12]
148
- rigparams = Regexp.last_match[14]
149
- end
150
- when 'static'
151
- rigtype = :static
152
- rigname = Regexp.last_match[17]
153
- rigparams = Regexp.last_match[19]
154
- else
155
- raise ArgumentError.new("Unknown Rig type: #{strtype}")
156
- end
157
- engine = Engine.new(name: rigname, type: rigtype, parent: @engine, params: rigparams)
158
- engine.render!
159
- engine.text
160
- }
161
- end
162
-
163
- end
164
- end
165
- end