pinion 0.1.3 → 0.1.4
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/pinion/directory_watcher.rb +14 -4
- data/lib/pinion/server.rb +3 -2
- data/lib/pinion/version.rb +1 -1
- metadata +5 -5
@@ -3,9 +3,13 @@ require "time"
|
|
3
3
|
|
4
4
|
module Pinion
|
5
5
|
class DirectoryWatcher
|
6
|
-
|
6
|
+
# Assume a static filesystem if options[:static] = true. Used in production mode.
|
7
|
+
def initialize(root = ".", options = {})
|
7
8
|
@root = root
|
8
9
|
@watch_directories = Set.new
|
10
|
+
if @static = options[:static]
|
11
|
+
@find_cache = {}
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
def <<(directory) @watch_directories << File.join(@root, directory) end
|
@@ -20,11 +24,17 @@ module Pinion
|
|
20
24
|
end
|
21
25
|
|
22
26
|
def find(path)
|
27
|
+
return @find_cache[path] if (@static && @find_cache.include?(path))
|
28
|
+
result = nil
|
23
29
|
@watch_directories.each do |directory|
|
24
|
-
|
25
|
-
|
30
|
+
filename = File.join(directory, path)
|
31
|
+
if File.file? filename
|
32
|
+
result = filename
|
33
|
+
break
|
34
|
+
end
|
26
35
|
end
|
27
|
-
|
36
|
+
@find_cache[path] = result if @static
|
37
|
+
result
|
28
38
|
end
|
29
39
|
|
30
40
|
def latest_mtime_with_suffix(suffix)
|
data/lib/pinion/server.rb
CHANGED
@@ -10,10 +10,10 @@ module Pinion
|
|
10
10
|
# because we need that information before requests are handled due to #asset_url
|
11
11
|
def initialize(mount_point)
|
12
12
|
@mount_point = mount_point
|
13
|
-
@
|
13
|
+
@environment = (defined?(RACK_ENV) && RACK_ENV) || ENV["RACK_ENV"] || "development"
|
14
|
+
@watcher = DirectoryWatcher.new ".", :static => (@environment == "production")
|
14
15
|
@cached_assets = {}
|
15
16
|
@file_server = Rack::File.new(Dir.pwd)
|
16
|
-
@environment = (defined?(RACK_ENV) && RACK_ENV) || ENV["RACK_ENV"] || "development"
|
17
17
|
end
|
18
18
|
|
19
19
|
def convert(from_and_to, &block)
|
@@ -123,6 +123,7 @@ module Pinion
|
|
123
123
|
def find_asset(to_path)
|
124
124
|
asset = @cached_assets[to_path]
|
125
125
|
if asset
|
126
|
+
return asset if @environment == "production"
|
126
127
|
mtime = asset.mtime
|
127
128
|
latest = @watcher.latest_mtime_with_suffix(asset.from_type.to_s)
|
128
129
|
if latest > mtime
|
data/lib/pinion/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pinion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-04-27 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement: &
|
16
|
+
requirement: &25868840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '1.0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *25868840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &25868420 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *25868420
|
36
36
|
description: ! 'Pinion is a Rack application that you can use to compile and serve
|
37
37
|
assets (such as Javascript and CSS).
|
38
38
|
|