zassets 0.1.13 → 0.2.0.pre
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.
- data/lib/zassets/config.rb +23 -0
- data/lib/zassets/sprockets_env.rb +1 -9
- data/lib/zassets/version.rb +1 -1
- data/spec/zassets-plugins-dummy.rb +17 -0
- data/spec/zassets/config_spec.rb +19 -0
- data/zassets.gemspec +2 -4
- metadata +11 -43
- data/lib/sprockets/less_template.rb +0 -46
data/lib/zassets/config.rb
CHANGED
@@ -7,6 +7,7 @@ module ZAssets
|
|
7
7
|
o.merge! load_options(options[:config_file]) if options[:config_file]
|
8
8
|
o.merge! options
|
9
9
|
@options = o
|
10
|
+
register_plugins!
|
10
11
|
end
|
11
12
|
|
12
13
|
def default_options
|
@@ -15,6 +16,8 @@ module ZAssets
|
|
15
16
|
:host => '::1',
|
16
17
|
:port => 9292,
|
17
18
|
:server => :puma,
|
19
|
+
:plugins => [],
|
20
|
+
:engines => {},
|
18
21
|
:base_url => '/assets',
|
19
22
|
:paths => [],
|
20
23
|
:public_path => 'public',
|
@@ -31,6 +34,15 @@ module ZAssets
|
|
31
34
|
options
|
32
35
|
end
|
33
36
|
|
37
|
+
def register_plugins!
|
38
|
+
return unless load_plugins!
|
39
|
+
|
40
|
+
::ZAssets::Plugins.constants.each do |plugin_module_name|
|
41
|
+
plugin_module = ::ZAssets::Plugins.const_get(plugin_module_name)
|
42
|
+
plugin_module::Registrant.new(self).register
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
34
46
|
def [](key)
|
35
47
|
@options[key]
|
36
48
|
end
|
@@ -38,5 +50,16 @@ module ZAssets
|
|
38
50
|
def []=(key, value)
|
39
51
|
@options[key] = value
|
40
52
|
end
|
53
|
+
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def load_plugins!
|
58
|
+
@options[:plugins].each do |plugin|
|
59
|
+
require "zassets-plugins-#{plugin}"
|
60
|
+
end
|
61
|
+
|
62
|
+
return ::ZAssets.const_defined? :Plugins
|
63
|
+
end
|
41
64
|
end
|
42
65
|
end
|
@@ -1,9 +1,5 @@
|
|
1
1
|
require 'sprockets'
|
2
2
|
|
3
|
-
module Sprockets
|
4
|
-
autoload :LessTemplate, 'sprockets/less_template'
|
5
|
-
end
|
6
|
-
|
7
3
|
module ZAssets
|
8
4
|
class SprocketsEnv < Sprockets::Environment
|
9
5
|
def initialize(config)
|
@@ -11,13 +7,9 @@ module ZAssets
|
|
11
7
|
|
12
8
|
self.logger.level = Logger::DEBUG if config[:verbose]
|
13
9
|
|
14
|
-
|
10
|
+
config[:engines].each { |ext, engine| register_engine ext, engine }
|
15
11
|
|
16
12
|
config[:paths].each { |p| append_path p }
|
17
|
-
|
18
|
-
require 'handlebars_assets'
|
19
|
-
append_path HandlebarsAssets.path
|
20
|
-
self.register_engine '.hbs', ::HandlebarsAssets::TiltHandlebars
|
21
13
|
end
|
22
14
|
end
|
23
15
|
end
|
data/lib/zassets/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Dummy zassets plugin for testing purpose.
|
2
|
+
|
3
|
+
module ZAssets
|
4
|
+
module Plugins
|
5
|
+
module Dummy
|
6
|
+
class Registrant
|
7
|
+
def initialize(config)
|
8
|
+
@config = config
|
9
|
+
end
|
10
|
+
|
11
|
+
def register
|
12
|
+
@config[:dummy_plugin] = :registered
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/spec/zassets/config_spec.rb
CHANGED
@@ -13,6 +13,11 @@ module ZAssets
|
|
13
13
|
config.instance_eval { @options }.should == config.default_options
|
14
14
|
end
|
15
15
|
|
16
|
+
it 'registers plugins' do
|
17
|
+
Config.any_instance.should_receive :register_plugins!
|
18
|
+
Config.new
|
19
|
+
end
|
20
|
+
|
16
21
|
context 'with a non-empty option hash' do
|
17
22
|
it 'merges the option hash' do
|
18
23
|
config = Config.new(verbose: true)
|
@@ -80,6 +85,20 @@ module ZAssets
|
|
80
85
|
end
|
81
86
|
end
|
82
87
|
|
88
|
+
describe '#register_plugins!' do
|
89
|
+
subject(:config) { Config.new(plugins: ['dummy']) }
|
90
|
+
|
91
|
+
it 'loads plugins' do
|
92
|
+
config
|
93
|
+
Plugins::Dummy.should be
|
94
|
+
end
|
95
|
+
|
96
|
+
it 'registers them with current config' do
|
97
|
+
config[:dummy_plugin].should == :registered
|
98
|
+
config = Config.new(plugins: ['dummy'])
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
83
102
|
describe '#[]' do
|
84
103
|
it 'returns an @options value from its key' do
|
85
104
|
config.instance_eval { @options[:foo] = :bar }
|
data/zassets.gemspec
CHANGED
@@ -20,11 +20,9 @@ Gem::Specification.new do |s|
|
|
20
20
|
|
21
21
|
s.add_dependency 'puma', '~> 1.6'
|
22
22
|
|
23
|
-
s.add_dependency 'therubyracer', '~> 0.11'
|
24
|
-
s.add_dependency 'libv8', '~> 3.3'
|
23
|
+
s.add_dependency 'therubyracer', '~> 0.11.0beta8'
|
24
|
+
s.add_dependency 'libv8', '~> 3.3.10.4'
|
25
25
|
s.add_dependency 'coffee-script', '2.2.0'
|
26
|
-
s.add_dependency 'less', '~> 2.3'
|
27
|
-
s.add_dependency 'handlebars_assets', '0.6.6'
|
28
26
|
|
29
27
|
s.add_development_dependency 'rspec', '~> 2.11'
|
30
28
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zassets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0.pre
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Thibault Jouan
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sprockets
|
@@ -50,7 +50,7 @@ dependencies:
|
|
50
50
|
requirements:
|
51
51
|
- - ~>
|
52
52
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
53
|
+
version: 0.11.0beta8
|
54
54
|
type: :runtime
|
55
55
|
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ~>
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 0.11.0beta8
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: libv8
|
64
64
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,7 +66,7 @@ dependencies:
|
|
66
66
|
requirements:
|
67
67
|
- - ~>
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version:
|
69
|
+
version: 3.3.10.4
|
70
70
|
type: :runtime
|
71
71
|
prerelease: false
|
72
72
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -74,7 +74,7 @@ dependencies:
|
|
74
74
|
requirements:
|
75
75
|
- - ~>
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 3.3.10.4
|
78
78
|
- !ruby/object:Gem::Dependency
|
79
79
|
name: coffee-script
|
80
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -91,38 +91,6 @@ dependencies:
|
|
91
91
|
- - '='
|
92
92
|
- !ruby/object:Gem::Version
|
93
93
|
version: 2.2.0
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: less
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '2.3'
|
102
|
-
type: :runtime
|
103
|
-
prerelease: false
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '2.3'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: handlebars_assets
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - '='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 0.6.6
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - '='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.6.6
|
126
94
|
- !ruby/object:Gem::Dependency
|
127
95
|
name: rspec
|
128
96
|
requirement: !ruby/object:Gem::Requirement
|
@@ -154,7 +122,6 @@ files:
|
|
154
122
|
- LICENSE
|
155
123
|
- README.md
|
156
124
|
- bin/zassets
|
157
|
-
- lib/sprockets/less_template.rb
|
158
125
|
- lib/zassets.rb
|
159
126
|
- lib/zassets/cli.rb
|
160
127
|
- lib/zassets/compiler.rb
|
@@ -170,6 +137,7 @@ files:
|
|
170
137
|
- spec/fixtures/public/index.html
|
171
138
|
- spec/spec_helper.rb
|
172
139
|
- spec/support/fixtures_helpers.rb
|
140
|
+
- spec/zassets-plugins-dummy.rb
|
173
141
|
- spec/zassets/cli_spec.rb
|
174
142
|
- spec/zassets/compiler_spec.rb
|
175
143
|
- spec/zassets/config_spec.rb
|
@@ -192,14 +160,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
192
160
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
193
161
|
none: false
|
194
162
|
requirements:
|
195
|
-
- - ! '
|
163
|
+
- - ! '>'
|
196
164
|
- !ruby/object:Gem::Version
|
197
|
-
version:
|
165
|
+
version: 1.3.1
|
198
166
|
requirements: []
|
199
167
|
rubyforge_project:
|
200
168
|
rubygems_version: 1.8.23
|
201
169
|
signing_key:
|
202
170
|
specification_version: 3
|
203
|
-
summary: zassets-0.
|
171
|
+
summary: zassets-0.2.0.pre
|
204
172
|
test_files: []
|
205
173
|
has_rdoc:
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'tilt'
|
2
|
-
require 'less'
|
3
|
-
|
4
|
-
module Sprockets
|
5
|
-
class LessTemplate < Tilt::Template
|
6
|
-
self.default_mime_type = 'text/css'
|
7
|
-
|
8
|
-
def self.engine_initialized?
|
9
|
-
defined? ::Less
|
10
|
-
end
|
11
|
-
|
12
|
-
def initialize_engine
|
13
|
-
require_template_library 'less'
|
14
|
-
end
|
15
|
-
|
16
|
-
def prepare
|
17
|
-
end
|
18
|
-
|
19
|
-
def evaluate(context, locals, &block)
|
20
|
-
options = {
|
21
|
-
:filename => eval_file,
|
22
|
-
:paths => [File.dirname(eval_file)]
|
23
|
-
}
|
24
|
-
parser = ::Less::Parser.new(options)
|
25
|
-
tree = parser.parse(data)
|
26
|
-
depend_on(context, eval_file)
|
27
|
-
tree.to_css
|
28
|
-
rescue ::Less::ParseError => e
|
29
|
-
context.__LINE__ = e.line
|
30
|
-
raise e
|
31
|
-
end
|
32
|
-
|
33
|
-
def depend_on(context, path)
|
34
|
-
parser = ::Less::Parser.new({
|
35
|
-
:filename => path,
|
36
|
-
:paths => [File.dirname(path)]
|
37
|
-
})
|
38
|
-
parser.parse(File.read(path))
|
39
|
-
parser.imports.each do |i|
|
40
|
-
dependency_path = File.join(File.dirname(path), i)
|
41
|
-
context.depend_on(dependency_path)
|
42
|
-
depend_on(context, dependency_path)
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|