paste 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -5,14 +5,14 @@ require 'active_support/core_ext/module/attr_accessor_with_default'
5
5
  require 'active_support/core_ext/module/delegation'
6
6
 
7
7
  module Paste
8
- autoload :Cache, 'paste/cache'
9
- autoload :Compress, 'paste/compress'
10
- autoload :ERBRenderer, 'paste/erb_renderer'
11
- autoload :Glue, 'paste/glue'
12
- autoload :NeedsUpdate, 'paste/needs_update'
13
- autoload :Rails, 'paste/rails'
14
- autoload :Resolver, 'paste/resolver'
15
- autoload :VERSION, 'paste/version'
8
+ autoload :Cache, 'paste/cache'
9
+ autoload :Compress, 'paste/compress'
10
+ autoload :ERBRenderer, 'paste/erb_renderer'
11
+ autoload :Glue, 'paste/glue'
12
+ autoload :Rails, 'paste/rails'
13
+ autoload :Resolver, 'paste/resolver'
14
+ autoload :ResolveError, 'paste/resolver'
15
+ autoload :VERSION, 'paste/version'
16
16
 
17
17
  class << self
18
18
  delegate :configure, :config, :to => Glue
@@ -29,11 +29,8 @@ Paste.configure do |config|
29
29
 
30
30
  config.js_destination = 'public/javascripts'
31
31
  config.js_load_path = ['app/javascripts']
32
- config.erb_path = 'tmp/paste-cache/erb'
33
- config.parser = Paste::Parser::Sprockets
34
-
35
- config.css_destination = 'public/stylesheets'
36
- config.css_load_path = ['app/stylesheets']
32
+ config.erb_path = 'tmp/paste-cache/erb'
33
+ config.parser = Paste::Parser::Sprockets
37
34
  end
38
35
 
39
36
  require 'paste/rails/railtie' if defined?(Rails)
@@ -5,6 +5,16 @@ module Paste
5
5
 
6
6
  def render_all_erb
7
7
  erb_sources.each { |s| render_erb s }
8
+
9
+ Dir[erb_path + '/**/*.js'].each do |erb|
10
+ erb_rel = erb.gsub erb_path + '/', ''
11
+
12
+ begin
13
+ find(erb_rel + '.erb')
14
+ rescue ResolveError
15
+ File.delete erb
16
+ end
17
+ end
8
18
  end
9
19
 
10
20
  def render_erb source
@@ -37,20 +37,16 @@ module Paste
37
37
  if @js_dependencies.nil? || @css_dependencies.nil? ||
38
38
  @last_updated.nil? || @last_updated < File.mtime(@file)
39
39
 
40
- begin
41
- @last_updated = Time.now
42
-
43
- @secretary = ::Sprockets::Secretary.new(
44
- :root => glue.root,
45
- :expand_paths => false,
46
- :load_path => glue.load_path,
47
- :source_files => [@file]
48
- )
49
-
50
- generate_dependencies
51
- rescue ::Sprockets::LoadError => e
52
- raise ResolveError.new(e.message)
53
- end
40
+ @last_updated = Time.now
41
+
42
+ @secretary = ::Sprockets::Secretary.new(
43
+ :root => glue.root,
44
+ :expand_paths => false,
45
+ :load_path => glue.load_path,
46
+ :source_files => [@file]
47
+ )
48
+
49
+ generate_dependencies
54
50
  end
55
51
  end
56
52
 
@@ -1,3 +1,3 @@
1
1
  module Paste
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -71,6 +71,15 @@ describe Paste::Glue do
71
71
 
72
72
  subject.erb_path('foo.js').should have_contents('foo')
73
73
  end
74
+
75
+ it "should delete the file if the source was removed" do
76
+ Paste::Test.write 'foo.js.erb', 'foobar', Time.now - 42
77
+ subject.render_all_erb
78
+ Paste::Test.delete_source 'foo.js.erb'
79
+
80
+ subject.render_all_erb
81
+ subject.erb_path('foo.js').should_not have_contents('foo')
82
+ end
74
83
  end
75
84
 
76
85
  context "rails" do
@@ -30,6 +30,22 @@ describe Paste::Glue do
30
30
  }.should raise_exception(/circular dependency/i)
31
31
  end
32
32
 
33
+ it "raises an exception on nonexistent dependencies" do
34
+ lambda {
35
+ subject.paste('nonexistent')
36
+ }.should raise_exception(/nonexistent.*couldn't be found/i)
37
+ end
38
+
39
+ it "raises a descriptive exception when a dependency is removed" do
40
+ Paste::Test.write 'nonexistent', ''
41
+ subject.paste('nonexistent')
42
+ Paste::Test.delete_source 'nonexistent'
43
+
44
+ lambda {
45
+ subject.paste('nonexistent')
46
+ }.should raise_exception(/nonexistent.*couldn't be found/i)
47
+ end
48
+
33
49
  describe "regenerating files" do
34
50
  it "watches for changes in dependencies" do
35
51
  Paste::Test.write 'foo', '//= require <bar>'
@@ -50,7 +50,8 @@ module Paste
50
50
  end
51
51
 
52
52
  def delete_file file
53
- file += '.' + extension unless file.end_with?('.' + extension)
53
+ file += '.' + extension unless file.end_with?('.' + extension) ||
54
+ file.end_with?('.erb')
54
55
 
55
56
  File.delete(file)
56
57
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 0
9
- version: 0.3.0
8
+ - 1
9
+ version: 0.3.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Alex Crichton
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-09-30 00:00:00 -04:00
17
+ date: 2010-10-17 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -35,14 +35,12 @@ dependencies:
35
35
  requirement: &id002 !ruby/object:Gem::Requirement
36
36
  none: false
37
37
  requirements:
38
- - - ">="
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  segments:
41
41
  - 3
42
42
  - 0
43
- - 0
44
- - beta4
45
- version: 3.0.0.beta4
43
+ version: "3.0"
46
44
  type: :runtime
47
45
  prerelease: false
48
46
  version_requirements: *id002
@@ -92,7 +90,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
92
90
  requirements:
93
91
  - - ">="
94
92
  - !ruby/object:Gem::Version
95
- hash: -2371119180319752676
93
+ hash: 3666398460497558282
96
94
  segments:
97
95
  - 0
98
96
  version: "0"
@@ -101,7 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
99
  requirements:
102
100
  - - ">="
103
101
  - !ruby/object:Gem::Version
104
- hash: -2371119180319752676
102
+ hash: 3666398460497558282
105
103
  segments:
106
104
  - 0
107
105
  version: "0"