class Nor::ScaffoldGenerator

Public Instance Methods

add_server_js_get() click to toggle source
# File lib/generators/nor/scaffold/scaffold_generator.rb, line 22
    def add_server_js_get
      code = <<~CODE
        \s\s\s\sserver.get('/#{plural_table_name}/:id(\\\\\\\\d+)', (req, res) => {
        \s\s\s\s  app.render(req, res, '/#{plural_table_name}/show', { id: req.params.id })
        \s\s\s\s})

        \s\s\s\sserver.get('/#{plural_table_name}/:id(\\\\\\\\d+)/edit', (req, res) => {
        \s\s\s\s  app.render(req, res, '/#{plural_table_name}/edit', { id: req.params.id })
        \s\s\s\s})

      CODE
      insert_into_file File.join('frontend', 'server.js'), code, before: "    server.get('*'"
    end
rails_scaffold() click to toggle source
# File lib/generators/nor/scaffold/scaffold_generator.rb, line 9
def rails_scaffold
  generate 'model', class_name, *attributes.map { |attribute| "#{attribute.name}:#{attribute.type}" }
  template 'controller.rb', File.join('app', 'controllers', "#{plural_table_name}_controller.rb")
  generate 'serializer', class_name
  gsub_file File.join('app', 'serializers', "#{singular_table_name}_serializer.rb"), 'attributes ', "attributes #{attributes_list_string}"
  route "resources :#{plural_name}"
end
react_page_component() click to toggle source
# File lib/generators/nor/scaffold/scaffold_generator.rb, line 17
def react_page_component
  directory 'frontend/pages', File.join('frontend', 'pages', plural_table_name)
  directory 'frontend/components', File.join('frontend', 'components', plural_table_name)
end

Private Instance Methods

attributes_list_string() click to toggle source
# File lib/generators/nor/scaffold/scaffold_generator.rb, line 49
def attributes_list_string
  (['id'] + attributes_names).map { |attribute_name| ":#{attribute_name}" }.join(', ')
end
input_type(attribute) click to toggle source
# File lib/generators/nor/scaffold/scaffold_generator.rb, line 38
def input_type(attribute)
  case attribute.type
  when :boolean
    return 'CheckBox'
  when :text
    return 'TextArea'
  else
    return 'Input'
  end
end