paste 0.3.0 → 0.3.1

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