tzispa_rig 0.4.3 → 0.4.4

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
  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