Sha256: f519dd81aa10d79cd489753358db4c977c17f381781ee686d76d5bd0c1002fe5

Contents?: true

Size: 895 Bytes

Versions: 1

Compression:

Stored size: 895 Bytes

Contents

require 'fileutils'
require 'parklife/config'
require 'parklife/crawler'
require 'parklife/errors'
require 'parklife/route_set'

module Parklife
  class Application
    attr_reader :config

    def initialize
      @config = Config.new
      @route_set = RouteSet.new
    end

    def build
      raise BuildDirNotDefinedError if config.build_dir.nil?
      raise RackAppNotDefinedError if config.app.nil?

      FileUtils.rm_rf(config.build_dir)
      Dir.mkdir(config.build_dir)

      crawler.start
    end

    def configure
      yield config
    end

    def crawler
      @crawler ||= Crawler.new(config, @route_set)
    end

    def load_Parkfile(path)
      raise ParkfileLoadError.new(path) unless File.exist?(path)
      load path
    end

    def routes(&block)
      if block_given?
        @route_set.instance_eval(&block)
      else
        @route_set
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
parklife-0.4.0 lib/parklife/application.rb