zfben_rails_assets 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/Gemfile +0 -2
- data/app/models/asset_format.rb +1 -1
- data/app/models/asset_format/css.rb +11 -3
- data/app/models/asset_format/js.rb +7 -3
- data/lib/zfben_rails_assets.rb +8 -0
- data/test/assets_test.rb +3 -3
- data/test/dummy/tmp/assets/import.js +0 -1
- data/test/dummy/tmp/assets/import_iteration.js +0 -2
- data/test/dummy/tmp/assets/import_twice.js +0 -1
- data/zfben_rails_assets.gemspec +2 -1
- metadata +20 -9
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/app/models/asset_format.rb
CHANGED
@@ -6,14 +6,22 @@ class AssetFormat::Css < AssetFormat
|
|
6
6
|
EXTEND_FORMATS = [:sass, :scss]
|
7
7
|
|
8
8
|
def minify text
|
9
|
-
::Sass::Engine.new(::Sass::CSS.new(text).render(:sass),
|
9
|
+
::Sass::Engine.new(::Sass::CSS.new(text).render(:sass), MINIFY_OPTIONS).render
|
10
10
|
end
|
11
11
|
|
12
12
|
def sass text
|
13
|
-
::Sass::Engine.new(
|
13
|
+
::Sass::Engine.new("@import compass\n" << text, SASS_OPTIONS).render
|
14
14
|
end
|
15
15
|
|
16
16
|
def scss text
|
17
|
-
::Sass::Engine.new(
|
17
|
+
::Sass::Engine.new("@import \"compass\";\n" << text, SCSS_OPTIONS).render
|
18
18
|
end
|
19
|
+
|
20
|
+
private
|
21
|
+
|
22
|
+
COMPASS_OPTIONS = Compass.sass_engine_options.merge({ line_comments: false })
|
23
|
+
COMPASS_OPTIONS[:load_paths].push(File.realpath(Rails.root) << '/app/assets')
|
24
|
+
MINIFY_OPTIONS = { syntax: :sass, style: :compressed }
|
25
|
+
SASS_OPTIONS = { syntax: :sass, style: :expanded }.merge(COMPASS_OPTIONS)
|
26
|
+
SCSS_OPTIONS = { syntax: :scss, style: :expanded }.merge(COMPASS_OPTIONS)
|
19
27
|
end
|
@@ -1,13 +1,17 @@
|
|
1
1
|
class AssetFormat::Js < AssetFormat
|
2
2
|
CONTENT_TYPE = 'text/javascript'
|
3
|
-
IMPORT = /[\/\*]{2}
|
3
|
+
IMPORT = /[\/\*]{2}\s*@import[ "'\(]+([^\s"'\);]+)[\s"'\);]*(\*\/)?/
|
4
|
+
IMPORT_COFFEE = /# *@import[ "'\(]+([^\s"'\);]+)[ "'\)]*/
|
4
5
|
EXTEND_FORMATS = [:coffee]
|
5
6
|
|
6
7
|
def minify text
|
7
|
-
Uglifier.compile text, copyright: false
|
8
|
+
::Uglifier.compile text, copyright: false
|
8
9
|
end
|
9
10
|
|
10
11
|
def coffee text
|
11
|
-
|
12
|
+
text = text.gsub(IMPORT_COFFEE){ |s|
|
13
|
+
"\n### @import #{IMPORT_COFFEE.match(s)[1]}\n###\n"
|
14
|
+
}
|
15
|
+
::CoffeeScript.compile text
|
12
16
|
end
|
13
17
|
end
|
data/lib/zfben_rails_assets.rb
CHANGED
@@ -1,6 +1,14 @@
|
|
1
|
+
require 'sass'
|
2
|
+
require 'compass'
|
3
|
+
require 'coffee-script'
|
4
|
+
require 'uglifier'
|
5
|
+
|
1
6
|
module ZfbenRailsAssets
|
2
7
|
class Engine < Rails::Engine
|
3
8
|
engine_name :zfben_rails_assets
|
4
9
|
isolate_namespace ZfbenRailsAssets
|
10
|
+
initializer 'zfben_rails_assets.helper' do |app|
|
11
|
+
ActionView::Base.send :include, AssetsHelper
|
12
|
+
end
|
5
13
|
end
|
6
14
|
end
|
data/test/assets_test.rb
CHANGED
@@ -9,15 +9,15 @@ end
|
|
9
9
|
class CssTest < ActiveSupport::TestCase
|
10
10
|
["@import file\n", '@import(file)', '@import("file")', '@import "file"', '@import file;', '/* @import file */'].each do |test|
|
11
11
|
test('import regex: ' + test)do
|
12
|
-
assert_equal AssetFormat::Css::IMPORT.match(test)[1], 'file'
|
12
|
+
assert_equal AssetFormat::Css::IMPORT.match(test)[1], 'file', AssetFormat::Css::IMPORT.match(test)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
class JsTest < ActiveSupport::TestCase
|
18
|
-
["// @import file\n", '//@import(file)', '//@import("file")', '//@import "file"', '//@import file;', '/* @import file */'].each do |test|
|
18
|
+
["// @import file\n", '//@import(file)', '//@import("file")', '//@import "file"', '//@import file;', '/* @import file */', "// aaa\n/*\n @import file\n*/"].each do |test|
|
19
19
|
test('import regex: ' + test)do
|
20
|
-
assert_equal AssetFormat::Js::IMPORT.match(test)[1], 'file'
|
20
|
+
assert_equal AssetFormat::Js::IMPORT.match(test)[1], 'file', AssetFormat::Js::IMPORT.match(test)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
data/zfben_rails_assets.gemspec
CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "zfben_rails_assets"
|
6
|
-
s.version = '0.0.
|
6
|
+
s.version = '0.0.9'
|
7
7
|
s.platform = Gem::Platform::RUBY
|
8
8
|
s.authors = ["Ben"]
|
9
9
|
s.email = ["ben@zfben.com"]
|
@@ -27,6 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.required_ruby_version = '>= 1.9'
|
28
28
|
|
29
29
|
s.add_dependency 'rails', '>=3.1.0'
|
30
|
+
s.add_dependency 'sass'
|
30
31
|
s.add_dependency 'compass'
|
31
32
|
s.add_dependency 'coffee-script'
|
32
33
|
s.add_dependency 'uglifier'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zfben_rails_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-11-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &12307720 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,21 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *12307720
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sass
|
27
|
+
requirement: &12307340 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *12307340
|
25
36
|
- !ruby/object:Gem::Dependency
|
26
37
|
name: compass
|
27
|
-
requirement: &
|
38
|
+
requirement: &12306880 !ruby/object:Gem::Requirement
|
28
39
|
none: false
|
29
40
|
requirements:
|
30
41
|
- - ! '>='
|
@@ -32,10 +43,10 @@ dependencies:
|
|
32
43
|
version: '0'
|
33
44
|
type: :runtime
|
34
45
|
prerelease: false
|
35
|
-
version_requirements: *
|
46
|
+
version_requirements: *12306880
|
36
47
|
- !ruby/object:Gem::Dependency
|
37
48
|
name: coffee-script
|
38
|
-
requirement: &
|
49
|
+
requirement: &12306460 !ruby/object:Gem::Requirement
|
39
50
|
none: false
|
40
51
|
requirements:
|
41
52
|
- - ! '>='
|
@@ -43,10 +54,10 @@ dependencies:
|
|
43
54
|
version: '0'
|
44
55
|
type: :runtime
|
45
56
|
prerelease: false
|
46
|
-
version_requirements: *
|
57
|
+
version_requirements: *12306460
|
47
58
|
- !ruby/object:Gem::Dependency
|
48
59
|
name: uglifier
|
49
|
-
requirement: &
|
60
|
+
requirement: &12306040 !ruby/object:Gem::Requirement
|
50
61
|
none: false
|
51
62
|
requirements:
|
52
63
|
- - ! '>='
|
@@ -54,7 +65,7 @@ dependencies:
|
|
54
65
|
version: '0'
|
55
66
|
type: :runtime
|
56
67
|
prerelease: false
|
57
|
-
version_requirements: *
|
68
|
+
version_requirements: *12306040
|
58
69
|
description: ''
|
59
70
|
email:
|
60
71
|
- ben@zfben.com
|