savanna 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- Yjg1MTM4MzQ5MjY2NWY1NzEzM2Y1OTZlMDcxZjFhZWMwODY0NzZhOA==
4
+ NTc1NWIzZTBhMDU5NmYwYTU3NGY0NTljYWU1ZTc0ZGQ1YTY4NjgzMg==
5
5
  data.tar.gz: !binary |-
6
- OTI4MDViNTg1MDRkZmYyMjJmYmZhZmM5OTgyMGI0NWY1YTkyZDllMg==
6
+ ODliMDcwMTM1N2YwYjkxMDc2MzU3MWYwYWQxYTgxNWIxNzM4YjU1MA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MWE0ODcyNDA1M2QwNDZhODdhM2U5ZmRhNmM5OWYwNDFiNjdiMTU5YmE2ZGM1
10
- ZmVkMWI1OTZiYTAyNTAyMjRlNTU3ZWUxZTU4MGE2OGNkMmI1NTkwMjY3OWQz
11
- NGZmMDJjYmI4YmU4Mjg2NTA3ZmE0M2FjOWE5OWIxNmM1MzhkM2I=
9
+ MDdiYTAzMTI1ZjQ5Njc1ZTFmOTJhZDViYWQ4NjM4NGM2MGFmNGJhYTFlZjA2
10
+ NTRhNWY0NDQyYjRkYmRmOTU3ZTIzZjk0OTQxMDkwZWU0ZmFkMWViZjg2ZDk3
11
+ MTBmZGEwOGQzMDRhNzhkMTAwNDJjY2NkMmE1OTc4ODhkMzQ4NDI=
12
12
  data.tar.gz: !binary |-
13
- MzhhNmQ1OTAzNzhiMTMyY2I4MTJjMThiMjgxYTQ3OTMyYWIzMTI4NjcwODRh
14
- ZGEyYTY5ZGIyMmZkNTBlZjhiZWNmODhkZWIxYjYwYWZiZDVlZmI1ZDYzMWU3
15
- N2VlZmEzNzM1ODc3ZjdhZjZkNzg4NmYzM2E5NWNlNGMyZmFjNTI=
13
+ YjkzYjIzNDFkNjE5NzFlY2MwYTNjMTljMWNkMTZmNThjNjNhMjBiNzdkOGFm
14
+ YjcyYjU1YjdmYTI1ZGNlNDc2ZGY3NTA5YzZmMmU5NjUzNGMzNmE5NzU3NDUw
15
+ YWM5YjRjMDY3NmFiZTQ1NzA2ODg2M2FkYjUyZjQwOWU3MzFjZDU=
@@ -2,6 +2,7 @@ require "sass"
2
2
  require 'coffee-script'
3
3
  require "compass"
4
4
  require "sprockets"
5
+ require "sprockets-helpers"
5
6
  require "sprockets-sass"
6
7
  require "yui/compressor"
7
8
  require "uglifier"
@@ -19,19 +20,23 @@ class Savanna::Assets
19
20
 
20
21
  def initialize(options)
21
22
  @root_path = options[:root_path]
22
- @sprockets = Sprockets::Environment.new { |env| env.logger = Logger.new(STDOUT) }
23
+ @sprockets = Sprockets::Environment.new do |env|
24
+ env.logger = Logger.new(STDOUT)
23
25
 
24
- add_append_path @root_path
26
+ define_children_directories [@root_path] + ASSET_PATH do |path|
27
+ env.append_path path
28
+ end
25
29
 
26
- ASSET_PATH << @root_path
27
- ASSET_PATH.each do |path|
28
- add_append_path [path, 'app'].join('/')
29
- add_append_path [path, 'vendor'].join('/')
30
- end
30
+ Sprockets::Helpers.configure do |config|
31
+ config.environment = env
32
+ config.prefix = "/#{ASSET_DIR}"
33
+ config.digest = false
34
+ end
31
35
 
32
- if options[:precompile]
33
- @sprockets.css_compressor = ::YUI::CssCompressor.new
34
- @sprockets.js_compressor = ::Uglifier.new mangle: true
36
+ if options[:precompile]
37
+ env.css_compressor = ::YUI::CssCompressor.new
38
+ env.js_compressor = ::Uglifier.new mangle: true
39
+ end
35
40
  end
36
41
  end
37
42
 
@@ -48,6 +53,7 @@ class Savanna::Assets
48
53
 
49
54
  precompile_files.each do |file|
50
55
  asset = @sprockets[file]
56
+ raise FileNotFound.new file if asset.nil?
51
57
  output_file = Pathname.new(output_dir).join file
52
58
  FileUtils.mkdir_p output_file.dirname
53
59
  asset.write_to output_file
@@ -70,7 +76,7 @@ class Savanna::Assets
70
76
  end
71
77
  raise EmptyPrecompileList if precompile_files.empty?
72
78
  else
73
- raise FileNotFound
79
+ raise PrecompileFileNotFound
74
80
  end
75
81
 
76
82
  return precompile_files
@@ -79,10 +85,14 @@ class Savanna::Assets
79
85
 
80
86
 
81
87
  protected
82
- def add_append_path (path, dir = 'assets')
83
- puts "Appended path: #{[path, dir].join('/')}"
84
- @sprockets.append_path [path, dir, "javascripts"].join('/')
85
- @sprockets.append_path [path, dir, "images"].join('/')
86
- @sprockets.append_path [path, dir, "stylesheets"].join('/')
88
+ def define_children_directories (paths, asset_dir = 'assets')
89
+ paths.each do |path|
90
+ ['', 'app', 'vendor'].each do |dir|
91
+ puts "Appended path: #{File.join(path, dir, asset_dir)}"
92
+ yield File.join(path, dir, asset_dir, "javascripts")
93
+ yield File.join(path, dir, asset_dir, "images")
94
+ yield File.join(path, dir, asset_dir, "stylesheets")
95
+ end
96
+ end
87
97
  end
88
98
  end
@@ -1,4 +1,10 @@
1
1
  class Savanna::Assets::FileNotFound < Exception
2
+ def initialize(file_name)
3
+ super "Cannot find '#{file_name}' in assets."
4
+ end
5
+ end
6
+
7
+ class Savanna::Assets::PrecompileFileNotFound < Exception
2
8
  def initialize
3
9
  super "Please make 'savanna' file to precompile, check this: https://github.com/shawnjung/savanna"
4
10
  end
@@ -1,3 +1,3 @@
1
1
  module Savanna
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/savanna.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency 'rack'
24
24
  spec.add_dependency 'sprockets'
25
25
  spec.add_dependency 'sprockets-sass'
26
+ spec.add_dependency 'sprockets-helpers'
26
27
  spec.add_dependency 'sass'
27
28
  spec.add_dependency 'compass'
28
29
  spec.add_dependency 'coffee-script'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: savanna
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shawn Jung
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-02 00:00:00.000000000 Z
11
+ date: 2013-07-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ! '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sprockets-helpers
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: sass
85
99
  requirement: !ruby/object:Gem::Requirement