Class: SimpleJsonApi::Generators::ResourceGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/simple_json_api/resource/resource_generator.rb

Overview

Generates the resource template files

Instance Method Summary collapse

Instance Method Details

#create_resourceObject



31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/generators/simple_json_api/resource/resource_generator.rb', line 31

def create_resource
  @namespace = options[:namespace]
  @model = options[:model] || class_name
  namespaced_name = [@namespace, class_name].compact.join('::')
  @serializer_name = "#{namespaced_name}Serializer"
  @controller_name = "#{namespaced_name.pluralize}Controller"
  @base_controller = options[:controller] || 'ApplicationController'
  @root_dir = options[:root_dir] || '.'
  file_path = "#{@namespace.underscore}/#{class_name.underscore}"

  check_model

  unless options[:skip_serializer]
    template 'serializer_template.rb.erb',
             "#{@root_dir}/app/serializers/#{file_path}_serializer.rb"
    # TODO: create serializer test
  end

  unless options[:skip_controller]
    template 'controller_template.rb.erb',
             "#{@root_dir}/app/controllers/#{file_path.pluralize}_controller.rb"
    # TODO: create controller test
  end

  unless options[:skip_service]
    # TODO: create service
    # TODO: create service test
  end
end