middleman-data_source 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/changelog.md +8 -0
- data/lib/middleman/data_source/extension.rb +16 -4
- data/lib/middleman/data_source/version.rb +1 -1
- data/readme.md +12 -0
- data/spec/fixtures/files_as_hash/config.rb +14 -0
- data/spec/lib/middleman/data_source/extension_spec.rb +18 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1740b08c31a4760f0ab73077c0aa67c7e20bbb1
|
4
|
+
data.tar.gz: b8d7771afa4af37eb51e11043c201bbb14dc4e5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 459a8197ac39ed4bc0e38eccc64a7f7e0397381d2b65dc3ab9fabc07b2dd876d09725730ec275274ad1123662e99d0550b2e99df7d8bf50bb56efc56bb34ce95
|
7
|
+
data.tar.gz: 678fd4d620a23691270fa5f780cf2eee58f99c853364519fbdcaf86ec8bb79e3a2844ace266d9adc5d2e503502164c3460997e70922bafffa727b340cefea0b4
|
data/changelog.md
CHANGED
@@ -12,11 +12,23 @@ module Middleman
|
|
12
12
|
@_rack_app ||= ::Rack::Test::Session.new( ::Rack::MockSession.new( options.rack_app ) )
|
13
13
|
end
|
14
14
|
|
15
|
+
# files = [
|
16
|
+
# '/url' => 'data/name'
|
17
|
+
# ]
|
18
|
+
|
15
19
|
def after_configuration
|
16
|
-
options.files.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
+
remote_datas = if options.files.respond_to? :keys
|
21
|
+
options.files
|
22
|
+
else
|
23
|
+
Hash[options.files.map do |remote_file|
|
24
|
+
[remote_file, remote_file]
|
25
|
+
end]
|
26
|
+
end
|
27
|
+
|
28
|
+
remote_datas.each do |remote_file, local_representation|
|
29
|
+
extension = File.extname remote_file
|
30
|
+
parts = local_representation.split(File::SEPARATOR)
|
31
|
+
basename = File.basename parts.pop, extension
|
20
32
|
|
21
33
|
if parts.empty?
|
22
34
|
original_callback = app.data.callbacks[basename]
|
data/readme.md
CHANGED
@@ -34,6 +34,18 @@ And access them like any other data:
|
|
34
34
|
= data.some.title
|
35
35
|
```
|
36
36
|
|
37
|
+
You can also specify data resources as a hash to map the name:
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
# config.rb (in data_source activation block)
|
41
|
+
c.files = {
|
42
|
+
"/url/to/resource.json" => "my_resource"
|
43
|
+
}
|
44
|
+
|
45
|
+
# source/index.html
|
46
|
+
= data.my_resource
|
47
|
+
```
|
48
|
+
|
37
49
|
You can fetch your data in two ways:
|
38
50
|
1. from the file system or web with [Borrower](http://github.com/stevenosloan/borrower)
|
39
51
|
2. with a rack app
|
@@ -0,0 +1,14 @@
|
|
1
|
+
set :environment, :test
|
2
|
+
set :show_exceptions, false
|
3
|
+
|
4
|
+
activate :data_source do |c|
|
5
|
+
|
6
|
+
c.root = File.join( Dir.pwd, 'remote_data' )
|
7
|
+
|
8
|
+
c.files = {
|
9
|
+
"/deeply/nested.json" => "mapped_nested",
|
10
|
+
"/in_yaml.yml" => "mapped_in_yaml",
|
11
|
+
"/in_json.json" => "mapped_in_json"
|
12
|
+
}
|
13
|
+
|
14
|
+
end
|
@@ -87,4 +87,22 @@ describe Middleman::DataSource::Extension do
|
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
90
|
+
context "with files specified as hash" do
|
91
|
+
before :each do
|
92
|
+
Given.fixture 'files_as_hash'
|
93
|
+
@mm = Middleman::Fixture.app
|
94
|
+
@extension = @mm.extensions[:data_source]
|
95
|
+
end
|
96
|
+
|
97
|
+
after :each do
|
98
|
+
Given.cleanup!
|
99
|
+
end
|
100
|
+
|
101
|
+
it "maps correctly between route & data name" do
|
102
|
+
expect( @mm.data.mapped_nested["nestable"] ).to eq "data"
|
103
|
+
expect( @mm.data.mapped_in_yaml ).to eq ["data","in","yaml"]
|
104
|
+
expect( @mm.data.mapped_in_json ).to eq ["data","in","json"]
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
90
108
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-data_source
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Sloan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: middleman
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- readme.md
|
54
54
|
- spec/fixtures/base/config.rb
|
55
55
|
- spec/fixtures/borrower/config.rb
|
56
|
+
- spec/fixtures/files_as_hash/config.rb
|
56
57
|
- spec/fixtures/multiple_instances/config.rb
|
57
58
|
- spec/fixtures/unsupported_extension/config.rb
|
58
59
|
- spec/lib/middleman-data_source_spec.rb
|
@@ -89,6 +90,7 @@ summary: Allow for loading data in middleman from remote sources
|
|
89
90
|
test_files:
|
90
91
|
- spec/fixtures/base/config.rb
|
91
92
|
- spec/fixtures/borrower/config.rb
|
93
|
+
- spec/fixtures/files_as_hash/config.rb
|
92
94
|
- spec/fixtures/multiple_instances/config.rb
|
93
95
|
- spec/fixtures/unsupported_extension/config.rb
|
94
96
|
- spec/lib/middleman/data_source/extension_spec.rb
|