Sha256: aca32c7287b65af7ae55b14fc62b3ada84737d33acb0299cf9a8d6def427d6e0

Contents?: true

Size: 1.81 KB

Versions: 5

Compression:

Stored size: 1.81 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')
            @generated = Generated.new([], config: self)
            @generated.invoke_all
        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?
            @process = development ? DevServer.new(self) : Compile.new(self)
        end

    end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
webpack_driver-0.3.7 lib/webpack_driver/configuration.rb
webpack_driver-0.3.6 lib/webpack_driver/configuration.rb
webpack_driver-0.3.5 lib/webpack_driver/configuration.rb
webpack_driver-0.3.4 lib/webpack_driver/configuration.rb
webpack_driver-0.3.3 lib/webpack_driver/configuration.rb