Sha256: 6e7b0248bd32becc501f12da7e091b23bbfa14fb109dd0d542e9d20268deb20d

Contents?: true

Size: 780 Bytes

Versions: 8

Compression:

Stored size: 780 Bytes

Contents

module Awestruct
  module Extensions

    class DataDir

      def initialize(data_dir="_data")
        @data_dir = data_dir
      end

      def watch(watched_dirs)
          watched_dirs << @data_dir
      end

      def execute(site)
    
        Dir[ "#{site.dir}/#{@data_dir}/*" ].each do |entry|
          if ( File.directory?( entry ) ) 
            data_key = File.basename( entry )
            data_map = {}
            Dir[ "#{entry}/*" ].each do |chunk|
              File.basename( chunk ) =~ /^([^\.]+)/
              key = $1.to_sym
              chunk_page = site.engine.load_page( chunk )
              data_map[ key ] = chunk_page
            end
            site.send( "#{data_key}=", data_map )
          end
        end
    
      end
    
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
awestruct-0.2.11 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.10 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.9 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.8 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.7 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.6 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.5 lib/awestruct/extensions/data_dir.rb
awestruct-0.2.4 lib/awestruct/extensions/data_dir.rb