Sha256: d596a752d20b92c3b5c63cd009194ad56a41bb51a205de6513e2231914415e2e

Contents?: true

Size: 1.89 KB

Versions: 2

Compression:

Stored size: 1.89 KB

Contents

require 'logger'
require 'pathname'
require_relative 'configuration/generated'
require_relative 'configuration/example'

module WebpackDriver

    class Configuration

        attr_accessor :port
        attr_accessor :logger
        attr_accessor :compile_script
        attr_accessor :tmp_directory
        attr_accessor :cmd_line_flags
        attr_accessor :output_path
        attr_writer   :environment
        attr_accessor :file
        attr_accessor :directory
        attr_accessor :logger

        attr_reader :process



        ROOT = Pathname.new(__FILE__).dirname.join('..', '..')

        def initialize(options = {})
            options.each { |k, v| send("#{k}=", v) }
            @file = Pathname.new(file) unless file.nil?
            @directory ||= Pathname.getwd
            @output_path ||= @directory.join('public', 'assets')
            @tmp_directory ||= @directory.join('tmp')
            if file.exist?
                @generated = Generated.new([], config: self)
                @generated.invoke_all
            end
        end

        def manifest_file
            output_path.join('manifiest.json')
        end

        def generate!
            Example.new([], config: self).invoke_all
        end

        def present?
            file.exist?
        end

        def gem_root
            ROOT
        end

        def environment
            @environment ||= { NODE_ENV: 'development' }
        end

        def flags
            opts = ['--config', @generated.path.to_s]
            opts += ['--port', port] if port
            opts += cmd_line_flags if cmd_line_flags
            opts
        end

        def logger
            @logger ||= Logger.new(STDOUT)
        end

        def launch(development:)
            raise "Already launched" unless @process.nil?
            logger.info "Startint"
            @process = development ? DevServer.new(self) : Compile.new(self)
        end

    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webpack_driver-0.3.1 lib/webpack_driver/configuration.rb
webpack_driver-0.3.0 lib/webpack_driver/configuration.rb