Sha256: 4d159ecdf3fa10b95d6ab68cbda9efdf5e8a4e3023d553a9695027be3b64fee5

Contents?: true

Size: 1.75 KB

Versions: 13

Compression:

Stored size: 1.75 KB

Contents

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

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

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

    argument :resource, type: :string
    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_api_specs
    end

    private

    def var
      dir.singularize
    end

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

    def generate_api_specs
      if actions?("index")
        to = File.join("spec", ApplicationResource.endpoint_namespace, dir, "index_spec.rb")
        template("index_request_spec.rb.erb", to)
      end

      if actions?("show")
        to = File.join("spec", ApplicationResource.endpoint_namespace, dir, "show_spec.rb")
        template("show_request_spec.rb.erb", to)
      end

      if actions?("create")
        to = File.join("spec", ApplicationResource.endpoint_namespace, dir, "create_spec.rb")
        template("create_request_spec.rb.erb", to)
      end

      if actions?("update")
        to = File.join("spec", ApplicationResource.endpoint_namespace, dir, "update_spec.rb")
        template("update_request_spec.rb.erb", to)
      end

      if actions?("destroy")
        to = File.join("spec", ApplicationResource.endpoint_namespace, dir, "destroy_spec.rb")
        template("destroy_request_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

13 entries across 13 versions & 1 rubygems

Version Path
graphiti-1.1.1 lib/generators/graphiti/api_test_generator.rb
graphiti-1.1.0 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.3 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.2 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.1 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.0 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.28 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.27 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.26 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.25 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.24 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.23 lib/generators/graphiti/api_test_generator.rb
graphiti-1.0.rc.22 lib/generators/graphiti/api_test_generator.rb