tzispa_rig 0.2.5 → 0.2.6

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: aef6c491f3383fc7cbd791222d9a35f5ba1503ed
4
- data.tar.gz: 75e0bc0bbf5d889882d886645c283027c6180575
3
+ metadata.gz: 484c207b444e399e36b3b280ec31d19bde762aaf
4
+ data.tar.gz: d72e7fc08e477694bde0eb6d38ca6c415796fb8c
5
5
  SHA512:
6
- metadata.gz: 071b901ee6482b8609a743688dc4fd9a1c996d124522c75e91ee2109f5a95887a1e5fab41ec6eccfb7541238d018ff6e48afc66658859cc5e739baf605432794
7
- data.tar.gz: 87e18aaae6a446409b51dfcd3943845819786457696742277cc6ffac45c042d58a116f236c3b7a463f9f9f59d24a49633807ae414536ebb185fa7066d8f64963
6
+ metadata.gz: a3d55a81e78788feb9c3eedd9a287ca467ec45024c244049a2e5d0553e47de5c9a6cd50a41ebc6cbbd991075d48256ee943e24e7e0764e45c76cbbe3fe91cd17
7
+ data.tar.gz: f132ca420011439890b476f274bf145a6331da7b10a4ac63f89128dfe68132e2c7074195c3a9bdbf2e3a2cbca722275475205615175bcdc99e6fc920fd173115
data/CHANGELOG.md CHANGED
@@ -2,6 +2,9 @@ Tzispa Rig
2
2
 
3
3
  Rig templates implementation
4
4
 
5
+ ## v0.2.6
6
+ - Add basic documentation
7
+
5
8
  ## v0.2.5
6
9
  - Add template methods for use in cli
7
10
 
data/README.md CHANGED
@@ -1,3 +1,183 @@
1
- Txispa Rig
1
+ # Tzispa Rig
2
2
 
3
- General purpose template engine
3
+ A general purpose template engine
4
+
5
+ ## Rig template types
6
+
7
+ There are 3 template types: layout, static and block:
8
+
9
+ * layout: these are the skeleton entry points of the rig templates
10
+ * static: these are "light" templates that are a included without any processing as plain text
11
+ * block: the true core of the rig templates, each block template file has an associated ruby file with the template binder class
12
+
13
+ To add templates to your app you can use cli coomands
14
+
15
+ ```shell
16
+ % tzispa generate rig lister --type=layout --app=mainapp
17
+ % tzispa generate rig sitefoot --type=static --app=mainapp
18
+ % tzispa generate rig product_detail --type=block --app=mainapp
19
+ ```
20
+
21
+ ## Rig template language
22
+
23
+ ### Variables and metavariables
24
+
25
+ Template variables are specified with:
26
+ ```
27
+ <var:name/>
28
+ ```
29
+
30
+ And metavariables with:
31
+ ```
32
+ {%name%}
33
+ ```
34
+ metavariables are used to make runtime template tags replacements
35
+
36
+ ```html
37
+ <fieldset>
38
+ <div class='row'>
39
+ <div class='column column-80'>
40
+ <label for='name'>Nombre *</label>
41
+ <input type='text' name='name' id='name' maxlength="64" value='<var:name/>' required='required' />
42
+ </div>
43
+ <div class='column column-20'>
44
+ <label for='skey'>Código</label>
45
+ <input type='text' name='skey' id='skey' maxlength="16" value='{%skey%}'/>
46
+ </div>
47
+ </div>
48
+ ....
49
+
50
+ ```
51
+
52
+ and in the template binder
53
+
54
+ ```ruby
55
+ def bind!
56
+ @idb = context.router_params[:id0]
57
+ load_brand if idb
58
+ end
59
+
60
+ private
61
+
62
+ attr_reader :idb
63
+
64
+ def load_brand
65
+ context.repository.use :ecomm_shop
66
+ brand = context.repository[:brand][idb]
67
+ data(
68
+ idb: brand.id,
69
+ name: brand.name,
70
+ skey: brand.skey,
71
+ long_name: brand.long_name,
72
+ web: brand.web,
73
+ manual_order: brand.manual_order,
74
+ notes: brand.notes
75
+ )
76
+ end
77
+ ```
78
+
79
+ ### Conditionals
80
+
81
+ You can make decisions in your templates using conditionals:
82
+
83
+ ```html
84
+ <ife:customer_exist>
85
+ <div class='row'>
86
+ <div class='column column-80'>
87
+ <label for='name'>Nombre *</label>
88
+ <input type='text' name='name' id='name' maxlength="64" value='<var:name/>' required='required' />
89
+ </div>
90
+ <div class='column column-20'>
91
+ <label for='skey'>Código</label>
92
+ <input type='text' name='skey' id='skey' maxlength="16" value='{%skey%}'/>
93
+ </div>
94
+ </div>
95
+ <else:customer_exist/>
96
+ <p> There isn't any customer here </p>
97
+ </ife:customer_exist>
98
+ ```
99
+
100
+ In the binder you must define customer_exist
101
+
102
+ ```ruby
103
+ def bind!
104
+ idc = context.router_params[:id0]
105
+ context.repository.use :ecomm_shop
106
+ customer = context.repository[:customer][idb]
107
+ data.customer_exist = !customer.nil?
108
+ end
109
+ ```
110
+
111
+ ## Repeating
112
+
113
+ To repeat a part in the template
114
+
115
+ ```html
116
+ <loop:lbrands>
117
+ <tr>
118
+ <td><var:id/></td>
119
+ <td><var:skey/></td>
120
+ <td><var:name/></td>
121
+ <td class='text-right'>
122
+ <a href='<purl:site[layout=brand_edit,title=edit-brand,id0={%id%}]/>'><i class='fa fa-edit'></i></a>
123
+ <a href='javascript:delete_brand("<api:brand:delete:{%id%}/>")'><i class='fa fa-trash'></i></a>
124
+ </td>
125
+ <tr>
126
+ </loop:lbrands>
127
+ ```
128
+
129
+ In the binder you must use the 'loop_binder' method
130
+
131
+ ```ruby
132
+
133
+ def bind!
134
+ data.lbrands = loop_binder(:lbrands).bind!(&load_brands)
135
+ end
136
+
137
+ private
138
+
139
+ def load_brands
140
+ Proc.new {
141
+ context.repository.use :ecomm_shop
142
+ context.repository[:brand].list.map { |b|
143
+ loop_item(
144
+ id: b.id,
145
+ skey: b.skey,
146
+ name: b.name
147
+ )
148
+ }
149
+ }
150
+ end
151
+ ```
152
+
153
+ ## Building urls
154
+
155
+ Rig templates can build urls for you. There are 2 url types:
156
+
157
+ ### purl
158
+
159
+ Site urls: used to provide links to site pages
160
+
161
+ ```
162
+ <purl:route_id/>
163
+ <purl:route_id[param1=value,param2=value]/>
164
+ ```
165
+ ```html
166
+ <purl:site[layout=brands,title=brand-list]/>
167
+ <purl:index/>
168
+ ```
169
+ The route_id's area defined in the start.ru file
170
+
171
+ ### api
172
+
173
+ Api urls: used to provide urls to the application Api
174
+
175
+ ```
176
+ <api:handler:verb/>
177
+ <api:handler:verb:predicate/>
178
+ ```
179
+ ```html
180
+ <api:customer:add:address/>
181
+
182
+ <api:brand:{%verb%}/>
183
+ ```
@@ -104,10 +104,9 @@ module Tzispa
104
104
  "#{@domain.path}/rig/#{@type.to_s.downcase}#{'/'+@subdomain if @subdomain}"
105
105
  end
106
106
 
107
- def create
107
+ def create(content='')
108
108
  FileUtils.mkdir_p(path) unless Dir.exist? path
109
- puts "path = #{Dir.exist? path}"
110
- super
109
+ super(content)
111
110
  create_binder
112
111
  end
113
112
 
@@ -3,7 +3,7 @@
3
3
  module Tzispa
4
4
  module Rig
5
5
 
6
- VERSION = '0.2.5'
6
+ VERSION = '0.2.6'
7
7
  GEM_NAME = 'tzispa_rig'
8
8
 
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tzispa_rig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.6
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-03-23 00:00:00.000000000 Z
11
+ date: 2016-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: tzispa_helpers