nm 0.5.0 → 0.5.1
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 +7 -0
- data/Gemfile +1 -7
- data/{LICENSE.txt → LICENSE} +0 -0
- data/README.md +1 -2
- data/lib/nm.rb +1 -2
- data/lib/nm/source.rb +7 -9
- data/lib/nm/version.rb +1 -1
- data/nm.gemspec +2 -2
- data/test/support/templates/locals_alt.inem +3 -0
- data/test/unit/source_tests.rb +6 -10
- data/test/unit/template_tests.rb +23 -23
- metadata +15 -32
- data/Rakefile +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
data.tar.gz: a775f8cf829f10a9890879b5a8f227da85eca3a7
|
4
|
+
metadata.gz: 43d84fe3504eccd6241abaf2a1842d511410323d
|
5
|
+
SHA512:
|
6
|
+
data.tar.gz: 049217416ebbbc9e98bc3a464ceff8e35111929eb6c9a1b06655a1e1abfa90cddbb5c9d63648d80f3996539828fe93ade692f66377267f5adc899c7cc40b287d
|
7
|
+
metadata.gz: de20fcd9575520aec65cc71137448b32ba1fcb129399222f1086e14af899493ca6e6f454622b23c52f86be0b7e95dfe6a61fa77fffa9bd20e6b472a96f06e778
|
data/Gemfile
CHANGED
data/{LICENSE.txt → LICENSE}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -125,8 +125,7 @@ This will render the same output as above.
|
|
125
125
|
|
126
126
|
### Markup Aliases
|
127
127
|
|
128
|
-
If you find you need to use a local named `node` or `map`,
|
129
|
-
`n`, `_node`, `m`, and `_map` respectively. Any combination of aliases is valid:
|
128
|
+
If you find you need to use a local named `node` or `map`, the markup methods are aliased as `n`, `_node`, `m`, and `_map` respectively. Any combination of aliases is valid:
|
130
129
|
|
131
130
|
```ruby
|
132
131
|
node 'slideshow' do
|
data/lib/nm.rb
CHANGED
data/lib/nm/source.rb
CHANGED
@@ -5,8 +5,6 @@ module Nm
|
|
5
5
|
|
6
6
|
class Source
|
7
7
|
|
8
|
-
EXT = ".nm"
|
9
|
-
|
10
8
|
attr_reader :root, :cache, :template_class
|
11
9
|
|
12
10
|
def initialize(root, opts = nil)
|
@@ -29,22 +27,22 @@ module Nm
|
|
29
27
|
end
|
30
28
|
end
|
31
29
|
|
32
|
-
def render(
|
33
|
-
@template_class.new(self, source_file_path(
|
30
|
+
def render(template_name, locals = nil)
|
31
|
+
@template_class.new(self, source_file_path(template_name), locals || {}).__data__
|
34
32
|
end
|
35
33
|
|
36
34
|
alias_method :partial, :render
|
37
35
|
|
38
36
|
private
|
39
37
|
|
40
|
-
def source_file_path(
|
41
|
-
self.root.join("#{
|
38
|
+
def source_file_path(template_name)
|
39
|
+
Dir.glob(self.root.join("#{template_name}*")).first
|
42
40
|
end
|
43
41
|
|
44
42
|
class NullCache
|
45
|
-
def [](
|
46
|
-
def []=(
|
47
|
-
def keys; [];
|
43
|
+
def [](template_name); end
|
44
|
+
def []=(template_name, value); end
|
45
|
+
def keys; []; end
|
48
46
|
end
|
49
47
|
|
50
48
|
end
|
data/lib/nm/version.rb
CHANGED
data/nm.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |gem|
|
|
8
8
|
gem.version = Nm::VERSION
|
9
9
|
gem.authors = ["Kelly Redding", "Collin Redding"]
|
10
10
|
gem.email = ["kelly@kellyredding.com", "collin.redding@me.com"]
|
11
|
-
gem.description = %q{Data templating system.}
|
12
11
|
gem.summary = %q{Data templating system.}
|
12
|
+
gem.description = %q{Data templating system.}
|
13
13
|
gem.homepage = "http://github.com/redding/nm"
|
14
14
|
gem.license = 'MIT'
|
15
15
|
|
@@ -21,6 +21,6 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
22
22
|
gem.require_paths = ["lib"]
|
23
23
|
|
24
|
-
gem.add_development_dependency("assert", ["~> 2.
|
24
|
+
gem.add_development_dependency("assert", ["~> 2.15.1"])
|
25
25
|
|
26
26
|
end
|
data/test/unit/source_tests.rb
CHANGED
@@ -12,10 +12,6 @@ class Nm::Source
|
|
12
12
|
end
|
13
13
|
subject{ @source_class }
|
14
14
|
|
15
|
-
should "know its extension" do
|
16
|
-
assert_equal ".nm", subject::EXT
|
17
|
-
end
|
18
|
-
|
19
15
|
end
|
20
16
|
|
21
17
|
class InitTests < UnitTests
|
@@ -88,19 +84,19 @@ class Nm::Source
|
|
88
84
|
class RenderTests < InitTests
|
89
85
|
desc "`render` method"
|
90
86
|
setup do
|
91
|
-
@
|
87
|
+
@template_name = ['locals', 'locals_alt'].choice
|
92
88
|
@file_locals = { 'key' => 'a-value' }
|
93
|
-
@file_path =
|
89
|
+
@file_path = Dir.glob("#{Factory.template_file(@template_name)}*").first
|
94
90
|
end
|
95
91
|
|
96
|
-
should "render a template for the given
|
92
|
+
should "render a template for the given template name and return its data" do
|
97
93
|
exp = Nm::Template.new(subject, @file_path, @file_locals).__data__
|
98
|
-
assert_equal exp, subject.render(@
|
94
|
+
assert_equal exp, subject.render(@template_name, @file_locals)
|
99
95
|
end
|
100
96
|
|
101
97
|
should "alias `render` as `partial`" do
|
102
|
-
exp = subject.render(@
|
103
|
-
assert_equal exp, subject.partial(@
|
98
|
+
exp = subject.render(@template_name, @file_locals)
|
99
|
+
assert_equal exp, subject.partial(@template_name, @file_locals)
|
104
100
|
end
|
105
101
|
|
106
102
|
end
|
data/test/unit/template_tests.rb
CHANGED
@@ -137,7 +137,7 @@ class Nm::Template
|
|
137
137
|
setup do
|
138
138
|
@source = Nm::Source.new(Factory.template_root)
|
139
139
|
|
140
|
-
@
|
140
|
+
@obj_template_name = "obj"
|
141
141
|
@obj = {
|
142
142
|
'obj' => {
|
143
143
|
'a' => 'Aye',
|
@@ -146,7 +146,7 @@ class Nm::Template
|
|
146
146
|
}
|
147
147
|
}
|
148
148
|
|
149
|
-
@
|
149
|
+
@list_template_name = "list"
|
150
150
|
@list = [
|
151
151
|
{ '1' => 1 },
|
152
152
|
{ '2' => 2 },
|
@@ -159,23 +159,23 @@ class Nm::Template
|
|
159
159
|
class RenderMethodTests < RenderTests
|
160
160
|
desc "`render` method"
|
161
161
|
|
162
|
-
should "render a template for the given
|
162
|
+
should "render a template for the given template name and add its data" do
|
163
163
|
t = Nm::Template.new(@source)
|
164
|
-
assert_equal @obj, t.__render__(@
|
164
|
+
assert_equal @obj, t.__render__(@obj_template_name).__data__
|
165
165
|
end
|
166
166
|
|
167
167
|
should "be aliased as `render`, `_render` and `r`" do
|
168
168
|
t = Nm::Template.new(@source)
|
169
|
-
assert_equal @obj, t.__render__(@
|
169
|
+
assert_equal @obj, t.__render__(@obj_template_name).__data__
|
170
170
|
|
171
171
|
t = Nm::Template.new(@source)
|
172
|
-
assert_equal @obj, t.render(@
|
172
|
+
assert_equal @obj, t.render(@obj_template_name).__data__
|
173
173
|
|
174
174
|
t = Nm::Template.new(@source)
|
175
|
-
assert_equal @obj, t._render(@
|
175
|
+
assert_equal @obj, t._render(@obj_template_name).__data__
|
176
176
|
|
177
177
|
t = Nm::Template.new(@source)
|
178
|
-
assert_equal @obj, t.r(@
|
178
|
+
assert_equal @obj, t.r(@obj_template_name).__data__
|
179
179
|
end
|
180
180
|
|
181
181
|
should "merge if call returns an obj and called after a `__node__` call" do
|
@@ -183,14 +183,14 @@ class Nm::Template
|
|
183
183
|
t.__node__('1', 'One')
|
184
184
|
|
185
185
|
exp = {'1' => 'One'}.merge(@obj)
|
186
|
-
assert_equal exp, t.__render__(@
|
186
|
+
assert_equal exp, t.__render__(@obj_template_name).__data__
|
187
187
|
end
|
188
188
|
|
189
189
|
should "complain if call returns an obj and called after a `__map__` call" do
|
190
190
|
t = Nm::Template.new(@source)
|
191
191
|
t.__map__([1,2,3])
|
192
192
|
assert_raises Nm::InvalidError do
|
193
|
-
t.__render__(@
|
193
|
+
t.__render__(@obj_template_name).__data__
|
194
194
|
end
|
195
195
|
end
|
196
196
|
|
@@ -199,7 +199,7 @@ class Nm::Template
|
|
199
199
|
t.__map__([1,2,3])
|
200
200
|
|
201
201
|
exp = [1,2,3].concat(@list)
|
202
|
-
assert_equal exp, t.__render__(@
|
202
|
+
assert_equal exp, t.__render__(@list_template_name).__data__
|
203
203
|
end
|
204
204
|
|
205
205
|
should "complain if call returns a list and called after a `__node__` call" do
|
@@ -207,7 +207,7 @@ class Nm::Template
|
|
207
207
|
t.__node__('1', 'One')
|
208
208
|
|
209
209
|
assert_raises Nm::InvalidError do
|
210
|
-
t.__render__(@
|
210
|
+
t.__render__(@list_template_name).__data__
|
211
211
|
end
|
212
212
|
end
|
213
213
|
|
@@ -216,33 +216,33 @@ class Nm::Template
|
|
216
216
|
class PartialMethodTests < RenderTests
|
217
217
|
desc "`partial` method"
|
218
218
|
setup do
|
219
|
-
@
|
219
|
+
@partial_obj_template_name = "_obj"
|
220
220
|
@partial_obj = {
|
221
221
|
'a' => 'Aye',
|
222
222
|
'b' => 'Bee',
|
223
223
|
'c' => 'See'
|
224
224
|
}
|
225
|
-
@
|
225
|
+
@partial_list_template_name = "_list"
|
226
226
|
@partial_list = @list
|
227
227
|
end
|
228
228
|
|
229
229
|
should "render a template for the given partial name and add its data" do
|
230
230
|
t = Nm::Template.new(@source)
|
231
|
-
assert_equal @partial_obj, t.__partial__(@
|
231
|
+
assert_equal @partial_obj, t.__partial__(@partial_obj_template_name).__data__
|
232
232
|
end
|
233
233
|
|
234
234
|
should "be aliased as `render`, `_render` and `r`" do
|
235
235
|
t = Nm::Template.new(@source)
|
236
|
-
assert_equal @partial_obj, t.__partial__(@
|
236
|
+
assert_equal @partial_obj, t.__partial__(@partial_obj_template_name).__data__
|
237
237
|
|
238
238
|
t = Nm::Template.new(@source)
|
239
|
-
assert_equal @partial_obj, t.partial(@
|
239
|
+
assert_equal @partial_obj, t.partial(@partial_obj_template_name).__data__
|
240
240
|
|
241
241
|
t = Nm::Template.new(@source)
|
242
|
-
assert_equal @partial_obj, t._partial(@
|
242
|
+
assert_equal @partial_obj, t._partial(@partial_obj_template_name).__data__
|
243
243
|
|
244
244
|
t = Nm::Template.new(@source)
|
245
|
-
assert_equal @partial_obj, t.p(@
|
245
|
+
assert_equal @partial_obj, t.p(@partial_obj_template_name).__data__
|
246
246
|
end
|
247
247
|
|
248
248
|
should "merge if call returns an obj and called after a `__node__` call" do
|
@@ -250,14 +250,14 @@ class Nm::Template
|
|
250
250
|
t.__node__('1', 'One')
|
251
251
|
|
252
252
|
exp = {'1' => 'One'}.merge(@partial_obj)
|
253
|
-
assert_equal exp, t.__partial__(@
|
253
|
+
assert_equal exp, t.__partial__(@partial_obj_template_name).__data__
|
254
254
|
end
|
255
255
|
|
256
256
|
should "complain if call returns an obj and called after a `__map__` call" do
|
257
257
|
t = Nm::Template.new(@source)
|
258
258
|
t.__map__([1,2,3])
|
259
259
|
assert_raises Nm::InvalidError do
|
260
|
-
t.__partial__(@
|
260
|
+
t.__partial__(@partial_obj_template_name).__data__
|
261
261
|
end
|
262
262
|
end
|
263
263
|
|
@@ -266,7 +266,7 @@ class Nm::Template
|
|
266
266
|
t.__map__([1,2,3])
|
267
267
|
|
268
268
|
exp = [1,2,3].concat(@partial_list)
|
269
|
-
assert_equal exp, t.__partial__(@
|
269
|
+
assert_equal exp, t.__partial__(@partial_list_template_name).__data__
|
270
270
|
end
|
271
271
|
|
272
272
|
should "complain if call returns a list and called after a `__node__` call" do
|
@@ -274,7 +274,7 @@ class Nm::Template
|
|
274
274
|
t.__node__('1', 'One')
|
275
275
|
|
276
276
|
assert_raises Nm::InvalidError do
|
277
|
-
t.__partial__(@
|
277
|
+
t.__partial__(@partial_list_template_name).__data__
|
278
278
|
end
|
279
279
|
end
|
280
280
|
|
metadata
CHANGED
@@ -1,13 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
- 0
|
10
|
-
version: 0.5.0
|
4
|
+
version: 0.5.1
|
11
5
|
platform: ruby
|
12
6
|
authors:
|
13
7
|
- Kelly Redding
|
@@ -16,23 +10,18 @@ autorequire:
|
|
16
10
|
bindir: bin
|
17
11
|
cert_chain: []
|
18
12
|
|
19
|
-
date:
|
13
|
+
date: 2016-04-05 00:00:00 Z
|
20
14
|
dependencies:
|
21
15
|
- !ruby/object:Gem::Dependency
|
16
|
+
name: assert
|
17
|
+
prerelease: false
|
22
18
|
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
-
none: false
|
24
19
|
requirements:
|
25
20
|
- - ~>
|
26
21
|
- !ruby/object:Gem::Version
|
27
|
-
|
28
|
-
segments:
|
29
|
-
- 2
|
30
|
-
- 12
|
31
|
-
version: "2.12"
|
22
|
+
version: 2.15.1
|
32
23
|
type: :development
|
33
|
-
name: assert
|
34
24
|
version_requirements: *id001
|
35
|
-
prerelease: false
|
36
25
|
description: Data templating system.
|
37
26
|
email:
|
38
27
|
- kelly@kellyredding.com
|
@@ -46,9 +35,8 @@ extra_rdoc_files: []
|
|
46
35
|
files:
|
47
36
|
- .gitignore
|
48
37
|
- Gemfile
|
49
|
-
- LICENSE
|
38
|
+
- LICENSE
|
50
39
|
- README.md
|
51
|
-
- Rakefile
|
52
40
|
- lib/nm.rb
|
53
41
|
- lib/nm/ext.rb
|
54
42
|
- lib/nm/source.rb
|
@@ -64,6 +52,7 @@ files:
|
|
64
52
|
- test/support/templates/aliases.nm
|
65
53
|
- test/support/templates/list.nm
|
66
54
|
- test/support/templates/locals.nm
|
55
|
+
- test/support/templates/locals_alt.inem
|
67
56
|
- test/support/templates/obj.nm
|
68
57
|
- test/unit/ext_tests.rb
|
69
58
|
- test/unit/source_tests.rb
|
@@ -72,35 +61,28 @@ files:
|
|
72
61
|
homepage: http://github.com/redding/nm
|
73
62
|
licenses:
|
74
63
|
- MIT
|
64
|
+
metadata: {}
|
65
|
+
|
75
66
|
post_install_message:
|
76
67
|
rdoc_options: []
|
77
68
|
|
78
69
|
require_paths:
|
79
70
|
- lib
|
80
71
|
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
-
|
73
|
+
- &id002
|
74
|
+
- ">="
|
84
75
|
- !ruby/object:Gem::Version
|
85
|
-
hash: 3
|
86
|
-
segments:
|
87
|
-
- 0
|
88
76
|
version: "0"
|
89
77
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
78
|
requirements:
|
92
|
-
-
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
hash: 3
|
95
|
-
segments:
|
96
|
-
- 0
|
97
|
-
version: "0"
|
79
|
+
- *id002
|
98
80
|
requirements: []
|
99
81
|
|
100
82
|
rubyforge_project:
|
101
|
-
rubygems_version:
|
83
|
+
rubygems_version: 2.5.1
|
102
84
|
signing_key:
|
103
|
-
specification_version:
|
85
|
+
specification_version: 4
|
104
86
|
summary: Data templating system.
|
105
87
|
test_files:
|
106
88
|
- test/helper.rb
|
@@ -111,6 +93,7 @@ test_files:
|
|
111
93
|
- test/support/templates/aliases.nm
|
112
94
|
- test/support/templates/list.nm
|
113
95
|
- test/support/templates/locals.nm
|
96
|
+
- test/support/templates/locals_alt.inem
|
114
97
|
- test/support/templates/obj.nm
|
115
98
|
- test/unit/ext_tests.rb
|
116
99
|
- test/unit/source_tests.rb
|
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require "bundler/gem_tasks"
|