noumenon 0.2.1 → 0.2.2
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/CHANGELOG.md +12 -0
- data/generators/site/config.ru +1 -1
- data/lib/noumenon/content_repository/file_system.rb +0 -23
- data/lib/noumenon/content_repository.rb +0 -29
- data/lib/noumenon/core.rb +1 -5
- data/lib/noumenon/version.rb +1 -1
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.2.2
|
2
|
+
|
3
|
+
## New Features
|
4
|
+
|
5
|
+
* By default the `send_file` method is used to serve assets from the asset repository so that caching
|
6
|
+
is handled correctly.
|
7
|
+
|
8
|
+
## Bug Fixes
|
9
|
+
|
10
|
+
* The asset repository was replacing the content repository entirely in new Noumenon sites.
|
11
|
+
* Removed asset management methods from the ContentRepository class.
|
12
|
+
|
1
13
|
# 0.2.1
|
2
14
|
|
3
15
|
## New Features
|
data/generators/site/config.ru
CHANGED
@@ -2,6 +2,6 @@ require 'noumenon'
|
|
2
2
|
|
3
3
|
Noumenon.theme = Noumenon::Theme.load("./theme")
|
4
4
|
Noumenon.content_repository = Noumenon::ContentRepository::FileSystem.new(path: "./content/pages")
|
5
|
-
Noumenon.
|
5
|
+
Noumenon.asset_repository = Noumenon::AssetRepository::FileSystem.new(path: "./content/assets")
|
6
6
|
|
7
7
|
run Noumenon.server
|
@@ -82,29 +82,6 @@ class Noumenon::ContentRepository::FileSystem < Noumenon::ContentRepository
|
|
82
82
|
}.sort { |a, b| a[:path] <=> b[:path] }
|
83
83
|
end
|
84
84
|
|
85
|
-
# Save a static asset to the repository.
|
86
|
-
#
|
87
|
-
# @see Noumenon::Repository#save_asset
|
88
|
-
# @api public
|
89
|
-
def save_asset(path, content)
|
90
|
-
raise ArgumentError.new("Assets must have a file extension.") unless File.extname(path).size > 0
|
91
|
-
write_file File.join("assets", path), content
|
92
|
-
end
|
93
|
-
|
94
|
-
# Retreive a static asset to the repository.
|
95
|
-
#
|
96
|
-
# @see Noumenon::Repository#get_asset
|
97
|
-
# @api public
|
98
|
-
def get_asset(path)
|
99
|
-
return nil unless File.extname(path).size > 0
|
100
|
-
read_file File.join("assets", path)
|
101
|
-
end
|
102
|
-
|
103
|
-
def get_asset_path(path)
|
104
|
-
return nil unless File.extname(path).size > 0
|
105
|
-
repository_path "assets/#{path}"
|
106
|
-
end
|
107
|
-
|
108
85
|
private
|
109
86
|
# Return the on-disk path to a repository item.
|
110
87
|
def repository_path(path)
|
@@ -60,35 +60,6 @@ class Noumenon::ContentRepository
|
|
60
60
|
def children(root = "/", depth = 1)
|
61
61
|
not_supported "listing children from a path"
|
62
62
|
end
|
63
|
-
|
64
|
-
# Saves a static asset to the repository. To be saved the asset must have a file extension, to prevent
|
65
|
-
# problems with an entire directory being overridden by a single asset.
|
66
|
-
#
|
67
|
-
# @param [ String ] path The path to save the asset at.
|
68
|
-
# @param [ String ] content The contents of the asset.
|
69
|
-
# @raises [ ArgumentError ] The path did not have a file extension.
|
70
|
-
def save_asset(path, content)
|
71
|
-
not_supported "saving assets"
|
72
|
-
end
|
73
|
-
|
74
|
-
# Retrieves a static asset from the repository. If the asset does not exist nil is returned.
|
75
|
-
#
|
76
|
-
# @param [ String ] path The path to load from.
|
77
|
-
# @return [ String, nil ] The asset's content, or nil if it does not exist.
|
78
|
-
def get_asset(path)
|
79
|
-
not_supported "loading assets"
|
80
|
-
end
|
81
|
-
|
82
|
-
# Returns a URL for the specified asset, without checking for it's existence.
|
83
|
-
#
|
84
|
-
# This is most useful for repositories that save their assets to a CDN such as S3, and allows them to be
|
85
|
-
# directly accessed from there, instead of downloaded and then retransmitted.
|
86
|
-
#
|
87
|
-
# @param [ String ] path The asset path within the repository.
|
88
|
-
# @return [ String ] The URL to use when requesting the asset.
|
89
|
-
def asset_url(path)
|
90
|
-
File.join("/assets", path)
|
91
|
-
end
|
92
63
|
|
93
64
|
protected
|
94
65
|
def not_supported(action)
|
data/lib/noumenon/core.rb
CHANGED
@@ -52,11 +52,7 @@ class Noumenon::Core < Sinatra::Base
|
|
52
52
|
asset = Noumenon.asset_repository.get(path)
|
53
53
|
halt 404, "Asset not found" unless asset
|
54
54
|
|
55
|
-
|
56
|
-
headers \
|
57
|
-
"Content-Type" => Rack::Mime.mime_type(File.extname(path)),
|
58
|
-
"Length" => asset.bytesize.to_s
|
59
|
-
body asset
|
55
|
+
send_file asset
|
60
56
|
end
|
61
57
|
|
62
58
|
get "*" do |path|
|
data/lib/noumenon/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: noumenon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.2.
|
5
|
+
version: 0.2.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Jon Wood
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-06-
|
13
|
+
date: 2011-06-11 00:00:00 +01:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|