Sha256: 2411cefdcc10a15dd8a88cf36de5e85bdc7a5bdd58ea4f0a72b9d0313bfe4872

Contents?: true

Size: 1.15 KB

Versions: 11

Compression:

Stored size: 1.15 KB

Contents

require 'ostruct'

module Awestruct
  class Site < OpenStruct

    attr_reader :dir
    attr_reader :output_dir
    attr_reader :tmp_dir

    attr_reader   :layouts
    attr_accessor :pages

    def initialize(config)
      super({})

      @dir = config.input_dir
      @output_dir = config.output_dir
      @tmp_dir = config.tmp_dir

      FileUtils.mkdir_p( @output_dir )
      FileUtils.mkdir_p( @tmp_dir )

      @pages   = []
      @layouts = {}
    end

    def has_page?(path)
      ! pages.find{|e| e.path == path}.nil?
    end

    def output_path(path, ext=nil)
      path = File.join( @output_dir, path[ @dir.size..-1] )
      unless ( ext.nil? )
        path = File.join( File.dirname( path ), File.basename( path, ext ) )
      end
      path 
    end

    def url_path(path, ext=nil)
      url_path = output_path( path, ext )[ @output_dir.size .. -1 ]
    end

    def apply_plugins
      Dir[ File.join( @dir, '_plugins', '*.rb' ) ].each do |rb_path|
        site_root = @dir
        output_root = @output_dir
        begin
          eval File.read( rb_path )
        rescue => e
          puts e
          puts e.backtrace
        end
      end
    end

  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
awestruct-0.2.10 lib/awestruct/site.rb
awestruct-0.2.9 lib/awestruct/site.rb
awestruct-0.2.8 lib/awestruct/site.rb
awestruct-0.2.7 lib/awestruct/site.rb
awestruct-0.2.6 lib/awestruct/site.rb
awestruct-0.2.5 lib/awestruct/site.rb
awestruct-0.2.4 lib/awestruct/site.rb
awestruct-0.2.3 lib/awestruct/site.rb
awestruct-0.2.2 lib/awestruct/site.rb
awestruct-0.2.1 lib/awestruct/site.rb
awestruct-0.2.0 lib/awestruct/site.rb