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.
- data/lib/paste.rb +10 -13
- data/lib/paste/erb_renderer.rb +10 -0
- data/lib/paste/parser/sprockets.rb +10 -14
- data/lib/paste/version.rb +1 -1
- data/spec/paste/erb_spec.rb +9 -0
- data/spec/paste/glue_spec.rb +16 -0
- data/spec/support/helpers.rb +2 -1
- metadata +7 -9
data/lib/paste.rb
CHANGED
@@ -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,
|
9
|
-
autoload :Compress,
|
10
|
-
autoload :ERBRenderer,
|
11
|
-
autoload :Glue,
|
12
|
-
autoload :
|
13
|
-
autoload :
|
14
|
-
autoload :
|
15
|
-
autoload :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
|
33
|
-
config.parser
|
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)
|
data/lib/paste/erb_renderer.rb
CHANGED
@@ -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
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
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
|
|
data/lib/paste/version.rb
CHANGED
data/spec/paste/erb_spec.rb
CHANGED
@@ -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
|
data/spec/paste/glue_spec.rb
CHANGED
@@ -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>'
|
data/spec/support/helpers.rb
CHANGED
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
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-
|
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
|
-
|
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:
|
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:
|
102
|
+
hash: 3666398460497558282
|
105
103
|
segments:
|
106
104
|
- 0
|
107
105
|
version: "0"
|