Class: AdminModelGenerator

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

Instance Method Summary collapse

Instance Method Details

#crate_rails_admin_concernObject



12
13
14
15
16
17
18
19
# File 'lib/generators/admin_model/admin_model_generator.rb', line 12

def crate_rails_admin_concern
  @class_name = class_name
  @fields_list = ''
  @attributes.each do |attribute|
    @fields_list << "\n        field :#{attribute.name}"
  end
  template 'admin_model.template', "app/models/concerns/rails_admin/#{file_name}.rb"
end

#generate_modelObject



8
9
10
# File 'lib/generators/admin_model/admin_model_generator.rb', line 8

def generate_model
  generate('model', @_initializer[0].join(' '))
end

#get_translation_fileObject



25
26
27
28
# File 'lib/generators/admin_model/admin_model_generator.rb', line 25

def get_translation_file
  ptbr = File.read('config/locales/pt-BR.yml')
  @ptbr_hash = YAML.load(ptbr)
end

#include_rails_adminObject



21
22
23
# File 'lib/generators/admin_model/admin_model_generator.rb', line 21

def include_rails_admin
  inject_into_class "app/models/#{file_name}.rb", class_name, "  include RailsAdmin::#{class_name}\n"
end

#insert_attributes_errors_translation_keysObject



80
81
82
83
84
85
86
87
88
89
90
# File 'lib/generators/admin_model/admin_model_generator.rb', line 80

def insert_attributes_errors_translation_keys
  model_attriutes = @attributes.reduce('') do |acc, attribute|
    "#{acc}\n            #{attribute.name}:\n              <<: *base_errors"
  end
  ptbr = File.read("config/locales/pt-BR.yml")
  inject_into_file 'config/locales/pt-BR.yml', after: ptbr[/pt-BR:\n(.*\n)* {2}activerecord:\n(.*\n)* {4}errors:\n(.*\n)* {6}models:\n( {8}.+(\n( {10}.+\n)+))+/] do
    <<-YML
      #{name}:\n          attributes:#{model_attriutes}
    YML
  end
end

#insert_attributes_translation_keysObject



68
69
70
71
72
73
74
75
76
77
78
# File 'lib/generators/admin_model/admin_model_generator.rb', line 68

def insert_attributes_translation_keys
  model_attriutes = @attributes.reduce('') do |acc, attribute|
    "#{acc}\n        #{attribute.name}: please fill me"
  end
  ptbr = File.read("config/locales/pt-BR.yml")
  inject_into_file 'config/locales/pt-BR.yml', after: ptbr[/pt-BR:\n(.*\n)* {2}activerecord:\n(.*\n)* {4}attributes:\n( {6}.+(\n( {8}.+\n)+))+/] do
    <<-YML
    #{name}:\n        <<: *default_attributes#{model_attriutes}
    YML
  end
end

#insert_base_errors_translations_if_necessaryObject



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/generators/admin_model/admin_model_generator.rb', line 44

def insert_base_errors_translations_if_necessary
  if @ptbr_hash["pt-BR"]["activerecord"]["errors"]["models"]["base_errors"].nil?
    inject_into_file 'config/locales/pt-BR.yml', after: "    errors:\n      models:\n" do
      <<-YML
      base_errors: &base_errors
        blank: não pode ficar em branco
        invalid: invalido
        required: é requirido
        taken: já existe e deve ser único
      YML
    end
  end
end

#insert_deafult_attributes_translations_if_necessaryObject



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/generators/admin_model/admin_model_generator.rb', line 30

def insert_deafult_attributes_translations_if_necessary
  if @ptbr_hash["pt-BR"]["activerecord"]["attributes"]["default_attributes"].nil?
    inject_into_file 'config/locales/pt-BR.yml', after: "\n    attributes:\n" do
      <<-YML
    default_attributes: &default_attributes
      id: '#'
      name: Nome
      created_at: Data de criação
      updated_at: Data de atualização
      YML
    end
  end
end

#inssert_model_translation_keysObject



58
59
60
61
62
63
64
65
66
# File 'lib/generators/admin_model/admin_model_generator.rb', line 58

def inssert_model_translation_keys
  inject_into_file 'config/locales/pt-BR.yml', after: "\n    models:\n" do
    <<-YML
    #{name}:
      one: please fill me
      other: please fill me
    YML
  end
end