zfben_rails_assets 0.0.8 → 0.0.9
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/.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
|