Sha256: 46d5ab1b955273fe004fcd6b5caa9cc9822d701421537bf04e9d2daa64e479de

Contents?: true

Size: 1.28 KB

Versions: 50

Compression:

Stored size: 1.28 KB

Contents

$:.unshift File.dirname(__FILE__)
require 'generator_mixin'

module Graphiti
  class ResourceTestGenerator < ::Rails::Generators::Base
    include GeneratorMixin

    source_root File.expand_path('../templates', __FILE__)

    argument :resource, type: :string
    argument :attributes, type: :array, default: [], banner: "field[:type][:index] field[:type][:index]"
    class_option :'actions',
      type: :array,
      default: nil,
      aliases: ['--actions', '-a'],
      desc: 'Array of controller actions, e.g. "index show destroy"'

    desc 'Generates rspec request specs at spec/api'
    def generate
      generate_resource_specs
    end

    private

    def var
      dir.singularize
    end

    def dir
      @resource.gsub('Resource', '').underscore.pluralize
    end

    def generate_resource_specs
      if actions?('create', 'update', 'destroy')
        to = "spec/resources/#{var}/writes_spec.rb"
        template('resource_writes_spec.rb.erb', to)
      end

      if actions?('index', 'show')
        to = "spec/resources/#{var}/reads_spec.rb"
        template('resource_reads_spec.rb.erb', to)
      end
    end

    def resource_class
      @resource.constantize
    end

    def type
      resource_class.type
    end

    def model_class
      resource_class.model
    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
graphiti-1.0.rc.21 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.19 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.18 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.17 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.16 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.15 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.14 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.12 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.11 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.10 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.9 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.8 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.7 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.6 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.5 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.4 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.3 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.2 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.rc.1 lib/generators/graphiti/resource_test_generator.rb
graphiti-1.0.beta.23 lib/generators/graphiti/resource_test_generator.rb