Class: Middleman::DataSource::Extension
- Inherits:
-
Extension
- Object
- Extension
- Middleman::DataSource::Extension
- Defined in:
- lib/middleman/data_source/extension.rb
Defined Under Namespace
Classes: UnsupportedDataExtension
Instance Method Summary collapse
-
#after_configuration ⇒ Object
files = [ ‘/url’ => ‘data/name’ ].
- #rack_app ⇒ Object
Instance Method Details
#after_configuration ⇒ Object
files = [
'/url' => 'data/name'
]
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/middleman/data_source/extension.rb', line 19 def after_configuration remote_datas = if .files.respond_to? :keys .files else Hash[.files.map do |remote_file| [remote_file, remote_file] end] end remote_datas.each do |remote_file, local_representation| extension = File.extname remote_file parts = local_representation.split(File::SEPARATOR) basename = File.basename parts.pop, extension if parts.empty? original_callback = app.data.callbacks[basename] app.data.callbacks[basename] = Proc.new do attempt_merge_then_enhance decode_data(remote_file, extension), original_callback end else original_callback = app.data.callbacks[parts.first] app.data.callbacks[parts.first] = Proc.new do built_data = { basename => decode_data(remote_file, extension) } parts[1..-1].reverse.each do |part| built_data = { part => built_data } end attempt_merge_then_enhance built_data, original_callback end end end end |
#rack_app ⇒ Object
11 12 13 |
# File 'lib/middleman/data_source/extension.rb', line 11 def rack_app @_rack_app ||= ::Rack::Test::Session.new( ::Rack::MockSession.new( .rack_app ) ) end |