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 CHANGED
@@ -1,5 +1,6 @@
1
1
  *.gem
2
2
  *.log
3
3
  .bundle
4
+ sass-cache
4
5
  Gemfile.lock
5
6
  pkg/*
data/Gemfile CHANGED
@@ -10,5 +10,3 @@ gem 'compass'
10
10
  gem 'therubyracer'
11
11
  gem 'coffee-script'
12
12
  gem 'uglifier'
13
-
14
- #gem 'zfben_rails_assets', :path => File.dirname(__FILE__)
@@ -50,7 +50,7 @@ class AssetFormat
50
50
  not_found file
51
51
  end
52
52
  end
53
-
53
+
54
54
  def find_file filename
55
55
  path = Rails.root.to_s + '/app/assets/' + filename
56
56
  if File.exist?(path)
@@ -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), { syntax: :sass, style: :compressed }).render
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(text, { syntax: :sass, style: :expanded }).render
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(text, { syntax: :scss, style: :expanded }).render
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} *@import[ "'\(]+([^\s"'\);]+)[ "'\)\/\*]*/
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
- CoffeeScript.compile text
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
@@ -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
@@ -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
@@ -1,4 +1,3 @@
1
1
 
2
2
  /* /home/ben/dev/zfben_rails_assets/test/dummy/app/assets/blank.js */
3
3
  // blank.js
4
-
@@ -4,8 +4,6 @@
4
4
  /* /home/ben/dev/zfben_rails_assets/test/dummy/app/assets/blank.js */
5
5
  // blank.js
6
6
 
7
-
8
7
  /* /home/ben/dev/zfben_rails_assets/test/dummy/app/assets/blank.js */
9
8
  // blank.js
10
9
 
11
-
@@ -2,7 +2,6 @@
2
2
  /* /home/ben/dev/zfben_rails_assets/test/dummy/app/assets/blank.js */
3
3
  // blank.js
4
4
 
5
-
6
5
  /* /home/ben/dev/zfben_rails_assets/test/dummy/app/assets/blank.js */
7
6
  // blank.js
8
7
 
@@ -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.8'
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.8
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: &19156440 !ruby/object:Gem::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: *19156440
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: &19156060 !ruby/object:Gem::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: *19156060
46
+ version_requirements: *12306880
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: coffee-script
38
- requirement: &19155600 !ruby/object:Gem::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: *19155600
57
+ version_requirements: *12306460
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: uglifier
49
- requirement: &19155180 !ruby/object:Gem::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: *19155180
68
+ version_requirements: *12306040
58
69
  description: ''
59
70
  email:
60
71
  - ben@zfben.com