tzispa_rig 0.2.5 → 0.2.6

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