Sha256: e025eb936f94417b09ad2e5ebee0075454d50ed557c7a5d5b39912e309e001ba

Contents?: true

Size: 1.3 KB

Versions: 9

Compression:

Stored size: 1.3 KB

Contents

require 'rails/generators/base'

class SpecHarnessGenerator < Rails::Generators::Base
  class_option :gems, type: :boolean, default: true, desc: "Add gems to Gemfile"
  class_option :guardfile, type: :boolean, default: true, desc: "Create a Guardfile"
  class_option :only_types, type: :array, default: [], desc: "The only types which should be set up"
  class_option :include_types, type: :array, default: [], desc: "Additional types of specs to include"
  class_option :exclude_types, type: :array, default: [], desc: "Types of specs to exclude"

  def generate_harness
    generate 'harness_spec_helper'
    required_spec_types.each do |type|
      generate "harness_spec_helper #{type}"
    end
    generate "harness_guardfile --watch_types=#{watch_types}" if options.guardfile?
    generate 'harness_gems' if options.gems?
  end

  private
  def spec_types
    [
      'actions',
      'decorators',
      'features',
      'forms',
      'models',
      'services'
    ]
  end

  def required_spec_types
    return (options.only_types.map {|t| t.underscore.pluralize}) if options.only_types.any?
    spec_types - (options.exclude_types.map {|t| t.underscore.pluralize}) + (options.include_types.map {|t| t.underscore.pluralize})
  end

  def watch_types
    required_spec_types.reject {|t| t == 'features'}.join(' ')
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
rails_spec_harness-0.0.9 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.8 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.7 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.6 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.5 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.4 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.3 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.2 lib/generators/spec_harness/spec_harness_generator.rb
rails_spec_harness-0.0.1 lib/generators/spec_harness/spec_harness_generator.rb