Class: Spotlight::ScaffoldResource

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/spotlight/scaffold_resource_generator.rb

Overview

spotlight:scaffold_resource generator

Instance Method Summary collapse

Instance Method Details

#create_controllerObject



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/generators/spotlight/scaffold_resource_generator.rb', line 31

def create_controller
  create_file "app/controllers/#{file_name}_resources_controller.rb", <<-FILE.strip_heredoc
    class #{class_name}ResourcesController < Spotlight::ResourcesController
      private

      def resource_class
        #{class_name}Resource
      end
    end
  FILE
end

#create_document_builderObject



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/generators/spotlight/scaffold_resource_generator.rb', line 10

def create_document_builder
  create_file "app/services/#{file_name}_builder.rb", <<-FILE.strip_heredoc
    class #{class_name}Builder < Spotlight::SolrDocumentBuilder
      def to_solr
        return to_enum(:to_solr) unless block_given?

        # TODO: your implementation here
        # yield { id: resource.id }
      end
    end
  FILE
end

#create_formObject



43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/generators/spotlight/scaffold_resource_generator.rb', line 43

def create_form
  create_file "app/views/#{file_name}_resources/_form.html.erb", <<-FILE.strip_heredoc
  <%= bootstrap_form_for([current_exhibit, @resource.becomes(#{class_name}Resource)], as: :resource) do |f| %>
    <%= f.text_field :url  %>
    <div class="form-actions">
      <div class="primary-actions">
        <%= cancel_link @resource, :back, class: 'btn btn-default' %>
        <%= f.submit t('.add_item'), class: 'btn btn-primary' %>
      </div>
    </div>
  <% end if can? :manage, @resource %>
  FILE
end

#create_modelObject



23
24
25
26
27
28
29
# File 'lib/generators/spotlight/scaffold_resource_generator.rb', line 23

def create_model
  create_file "app/models/#{file_name}_resource.rb", <<-FILE.strip_heredoc
    class #{class_name}Resource < Spotlight::Resource
      self.document_builder_class = #{class_name}Builder
    end
  FILE
end