linner 0.9.1 → 0.10.0
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 +4 -4
- data/CHANGELOG +3 -0
- data/docs/config.md +4 -0
- data/lib/linner.rb +24 -2
- data/lib/linner/asset.rb +6 -2
- data/lib/linner/template.rb +2 -0
- data/lib/linner/version.rb +1 -1
- data/linner.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da0b05dc72a9e2993d4c6c1f12c27311e622ba20
|
4
|
+
data.tar.gz: 75ac9e76a25aa4d7fdbf27c82ece3bbc3f29028a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c2421a77a255f1d4b5e15e8ed263ea6bf2ed7d478808697c4ec858aabdb435f9bbe203c8a9b1bad6df6b67dedcf81305cddff625f5ab3d722d346a25db3a5dd
|
7
|
+
data.tar.gz: 60a194ab95ce596151b82646f429628b8b80fe0176d0e8a6da02524694683427900d63826b2cf5cd68d8f0190973bdab2b0e96d85720df41bbaf253c61fb2a78
|
data/CHANGELOG
CHANGED
data/docs/config.md
CHANGED
@@ -51,12 +51,16 @@ the default configuration defines four groups: `scripts`, `styles`, `images` and
|
|
51
51
|
|
52
52
|
`copy` defines copy strategy of files in Linner. The `Dir.glob` of `value` will be copy to `key` folder.
|
53
53
|
|
54
|
+
`compile` defines compile strategy of files in Linner. The `Dir.glob` of `value` will be compile to `key` folder.
|
55
|
+
|
54
56
|
`precompile` defines precompile strategy of javascript templates for Linner. The `Dir.glob` of `value` will be concat to `key`.
|
55
57
|
|
56
58
|
`sprite` defines sprite strategy of images for Linner. The `Dir.glob` of `value` will be sprite to `key`.
|
57
59
|
|
58
60
|
`tar` defines archive strategy of files in Linner. The `Dir.glob` of `value` will be archive to `key` file.
|
59
61
|
|
62
|
+
`context` defines the context of the `compile` files, and the value will pass to the render function.
|
63
|
+
|
60
64
|
`order` defines the order of this group files, and It's very useful when you `concat` your files. for example:
|
61
65
|
|
62
66
|
```yaml
|
data/lib/linner.rb
CHANGED
@@ -102,6 +102,7 @@ module Linner
|
|
102
102
|
end
|
103
103
|
env.groups.each do |config|
|
104
104
|
copy(config) if config["copy"]
|
105
|
+
compile(config) if config["compile"]
|
105
106
|
concat(config) if config["concat"]
|
106
107
|
end
|
107
108
|
env.groups.each do |config|
|
@@ -122,6 +123,17 @@ module Linner
|
|
122
123
|
|
123
124
|
def copy(config)
|
124
125
|
config["copy"].each do |dest, pattern|
|
126
|
+
Dir.glob(pattern).each do |path|
|
127
|
+
asset = Asset.new(path)
|
128
|
+
dest_path = File.join(env.public_folder, dest, asset.logical_path)
|
129
|
+
FileUtils.mkdir_p File.dirname(dest_path)
|
130
|
+
FileUtils.cp_r path, dest_path
|
131
|
+
end
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
def compile(config)
|
136
|
+
config["compile"].each do |dest, pattern|
|
125
137
|
Dir.glob(pattern).each do |path|
|
126
138
|
next if not cache.miss?(dest, path)
|
127
139
|
asset = Asset.new(path)
|
@@ -129,8 +141,18 @@ module Linner
|
|
129
141
|
if asset.javascript? or asset.stylesheet?
|
130
142
|
asset.content
|
131
143
|
asset.compress if compile?
|
132
|
-
dest_path = dest_path.sub(/[^.]+\z/,"js") if asset.javascript?
|
133
|
-
dest_path = dest_path.sub(/[^.]+\z/,"css") if asset.stylesheet?
|
144
|
+
dest_path = dest_path.sub(/[^.]+\z/, "js") if asset.javascript?
|
145
|
+
dest_path = dest_path.sub(/[^.]+\z/, "css") if asset.stylesheet?
|
146
|
+
asset.path = dest_path
|
147
|
+
asset.write
|
148
|
+
elsif asset.eruby?
|
149
|
+
base, ext = path.split(".")
|
150
|
+
dest_path = if ext == "erb"
|
151
|
+
dest_path.sub(/[.]+\z/, "html")
|
152
|
+
else
|
153
|
+
dest_path.gsub(File.basename(dest_path), File.basename(dest_path, File.extname(dest_path)))
|
154
|
+
end
|
155
|
+
asset.content(config["context"])
|
134
156
|
asset.path = dest_path
|
135
157
|
asset.write
|
136
158
|
else
|
data/lib/linner/asset.rb
CHANGED
@@ -36,10 +36,10 @@ module Linner
|
|
36
36
|
File.rename path, digest_path
|
37
37
|
end
|
38
38
|
|
39
|
-
def content
|
39
|
+
def content(context = nil)
|
40
40
|
return @content if @content
|
41
41
|
source = begin
|
42
|
-
File.exist?(path) ? Tilt.new(path, :default_encoding => "UTF-8").render : ""
|
42
|
+
File.exist?(path) ? Tilt.new(path, :default_encoding => "UTF-8").render(nil, context) : ""
|
43
43
|
rescue RuntimeError
|
44
44
|
File.read(path, mode: "rb")
|
45
45
|
rescue => e
|
@@ -76,6 +76,10 @@ module Linner
|
|
76
76
|
Tilt[path] and Tilt[path].default_mime_type == "text/template"
|
77
77
|
end
|
78
78
|
|
79
|
+
def eruby?
|
80
|
+
Tilt[path] and Tilt[path].default_mime_type = "application/x-eruby"
|
81
|
+
end
|
82
|
+
|
79
83
|
def wrappable?
|
80
84
|
!!(self.javascript? and !Linner.env.modules_ignored.include?(@path) or self.template?)
|
81
85
|
end
|
data/lib/linner/template.rb
CHANGED
data/lib/linner/version.rb
CHANGED
data/linner.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
21
|
spec.add_dependency "thor", "~> 0.18"
|
22
|
-
spec.add_dependency "tilt", "~>
|
22
|
+
spec.add_dependency "tilt", "~> 2.0"
|
23
23
|
spec.add_dependency "reel", "~> 0.5.0"
|
24
24
|
spec.add_dependency "listen", "~> 1.3"
|
25
25
|
spec.add_dependency "uglifier", "~> 2.5.0"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Saito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: reel
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|