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



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

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



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

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



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

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



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

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