Sha256: eef7e7a67b6ac25363c727d01189e3072950921aed9c542045c90460a1422d32

Contents?: true

Size: 1.77 KB

Versions: 8

Compression:

Stored size: 1.77 KB

Contents

require_relative '../hippo'
require_relative 'command/jest'
require_relative 'reloadable_sinatra.rb'
require 'guard/jest'
require 'guard/rspec'

module Hippo
    module GuardTasks
        mattr_accessor :client_config

        class CustomMatchers
            attr_reader :client_matches, :server_matches

            def client(&block)
                @client_matches = block
            end
            def server(&block)
                @server_matches = block
            end
        end

        def self.run(dsl, options, &block)
            matchers = CustomMatchers.new
            yield matchers
            identifier = ::Hippo::Extensions.controlling.identifier
            config = client_config || ::Hippo::Command::Jest.new.configure.config

            jest_options = options.merge(
                logger: Hippo.logger,
                silent: false,
                jest_cmd: './node_modules/.bin/jest',
                config_file: config.directory.join('jest.config.json')
            )
            dsl.guard :jest, jest_options

            rspec_options = {
                all_on_start: false,
                cmd: 'bundle exec rspec'
            }
            dsl.guard :rspec, rspec_options do
                dsl.watch(%r{^spec/server/spec_helper\.rb}) { 'spec' }
                dsl.watch(%r{^spec/server/.*_spec\.rb})
                dsl.watch(%r{^lib/#{identifier}/(.+)\.rb}) { |m| "spec/server/#{m[1]}_spec.rb" }
                dsl.watch(%r{^spec/fixtures/#{identifier}(.+)s\.yml}) { |m| "spec/server/#{m[1]}_spec.rb" }
                matchers.server_matches.call if matchers.server_matches
            end

            dsl.guard :reloadable_sinatra do
                dsl.watch(%r{^lib/.*\.rb})
                dsl.watch(%r{^config/.*})
            end
        end
    end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
hippo-fw-0.9.9 lib/hippo/guard_tasks.rb
hippo-fw-0.9.8 lib/hippo/guard_tasks.rb
hippo-fw-0.9.7 lib/hippo/guard_tasks.rb
hippo-fw-0.9.6 lib/hippo/guard_tasks.rb
hippo-fw-0.9.5 lib/hippo/guard_tasks.rb
hippo-fw-0.9.4 lib/hippo/guard_tasks.rb
hippo-fw-0.9.3 lib/hippo/guard_tasks.rb
hippo-fw-0.9.2 lib/hippo/guard_tasks.rb