paste 0.3.0 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- 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"
|