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 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