sinatra-wardrobe 0.0.1 → 0.0.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/README.md +15 -0
- data/lib/sinatra-wardrobe.rb +7 -7
- data/lib/sinatra-wardrobe/version.rb +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -14,6 +14,21 @@ And use it with the `suit_up!` method.
|
|
14
14
|
suit_up! directories: './views', extensions: '.md'
|
15
15
|
```
|
16
16
|
|
17
|
+
Or, for a little more control:
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
suit_up! directories: ['./views/blog', './views/static'], extensions: ['.md', '.erb'], excludes: 'layout.erb', layout_engine: :erb
|
21
|
+
```
|
22
|
+
|
23
|
+
## Defaults
|
24
|
+
|
25
|
+
By default, `Sinatra::Wardrobe` will look for files with a `.md` extension in the `./views` directory, ignoring `layout.erb` and assuming a `layout_engine` of `:erb`.
|
26
|
+
|
17
27
|
Currently it only supports `.erb`, `.md` and `.markdown` but there are more to come.
|
18
28
|
|
29
|
+
## Helpers
|
30
|
+
|
31
|
+
* `hats` will return the array of Hash objects that `Sinatra::Wardrobe` uses to bind the `get` requests and serve your files.
|
32
|
+
* `hat_rack` is an HTML helper that generates an (by default) unordered list with links to each of the files in the `hats` array.
|
33
|
+
|
19
34
|
[MIT Licensed](http://evan.mit-license.org/)
|
data/lib/sinatra-wardrobe.rb
CHANGED
@@ -23,10 +23,10 @@ module Sinatra
|
|
23
23
|
# because it's a declaration!
|
24
24
|
def suit_up!(options = {})
|
25
25
|
options = {
|
26
|
-
directories
|
27
|
-
extensions
|
28
|
-
excludes
|
29
|
-
layout_engine
|
26
|
+
:directories => ['./views'],
|
27
|
+
:extensions => ['.md'],
|
28
|
+
:excludes => ['layout.erb'],
|
29
|
+
:layout_engine => :erb
|
30
30
|
}.merge(options)
|
31
31
|
|
32
32
|
[:extensions, :excludes, :directories].each do |option|
|
@@ -35,15 +35,15 @@ module Sinatra
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
# a little Regexp to filter out exclusions
|
38
39
|
directories_regexp = Regexp.new(options[:directories].join('|'))
|
39
40
|
|
41
|
+
# loop and then loop and then GLOB!!
|
40
42
|
options[:directories].each do |dir|
|
41
43
|
options[:extensions].each do |ext|
|
42
44
|
Dir.glob("#{ dir }/**/*#{ ext }") do |file|
|
43
45
|
file_name = file.gsub(directories_regexp, '')
|
44
46
|
|
45
|
-
$stdout.puts "File found #{ file } and file_name is #{ file_name }"
|
46
|
-
|
47
47
|
next if options[:excludes].include?(file_name.gsub(/\//, ''))
|
48
48
|
|
49
49
|
file_route = file_name.gsub(ext, '')
|
@@ -52,7 +52,7 @@ module Sinatra
|
|
52
52
|
word.capitalize!
|
53
53
|
end.join(' ')
|
54
54
|
|
55
|
-
@@hats << { path
|
55
|
+
@@hats << { :path => file_route, :title => file_title, :extension => ext }
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sinatra-wardrobe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
16
|
-
requirement: &
|
16
|
+
requirement: &70102351546200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70102351546200
|
25
25
|
description: A quick and dirty static file router for Sinatra.
|
26
26
|
email:
|
27
27
|
- evan.lecklider@gmail.com
|