savanna 0.0.4 → 0.0.5

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