Class: RaroCrud

Inherits:
Object
  • Object
show all
Defined in:
app/raro_crud/raro_crud.rb

Constant Summary collapse

@@order_field =
{}
@@per_page =
{}
@@index_fields =
{}
@@form_fields =
{}
@@form_group =
{}
@@form_scripts =
{}
@@view_fields =
{}
@@listing_fields =
{}
@@printing_fields =
{}
@@search_fields =
{}
@@test_fields =
{}
{}
@@title =
{}
@@subtitle_index =
{}
@@description_index =
{}
@@actions =
{}
{}
@@edit_action =
{}
@@condition_edit_action =
{}
@@destroy_action =
{}
@@condition_destroy_action =
{}
@@view_action =
{}
@@condition_view_action =
{}
@@condition_listing_action =
{}
@@condition_listing_excel =
{}
@@condition_listing_pdf =
{}
@@condition_printing_action =
{}
{}
@@scopes =
{}
[]
@@layout =
{}
@@index_path =
nil

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.acoes(method, desc, proc = nil, options = {}) ⇒ Object



407
408
409
410
# File 'app/raro_crud/raro_crud.rb', line 407

def self.acoes(method, desc, proc = nil, options={})
  @@actions[self.to_s.to_sym] = [] unless @@actions[self.to_s.to_sym]
  @@actions[self.to_s.to_sym].push({method: method, desc: desc, proc: proc, options: options})
end

.actionsObject



147
148
149
# File 'app/raro_crud/raro_crud.rb', line 147

def self.actions
  (@@actions[self.to_s.to_sym]) ? @@actions[self.to_s.to_sym] : []
end


151
152
153
# File 'app/raro_crud/raro_crud.rb', line 151

def self.actions_links
  (@@links[self.to_s.to_sym]) ? @@links[self.to_s.to_sym] : []
end

.add_menus(menu) ⇒ Object



195
196
197
# File 'app/raro_crud/raro_crud.rb', line 195

def self.add_menus(menu)
  @@menus << menu
end

.adicionar_enderecoObject



461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
# File 'app/raro_crud/raro_crud.rb', line 461

def self.adicionar_endereco
  @@form_fields[self.to_s.to_sym] = [] unless @@form_fields[self.to_s.to_sym]
  opts = {}
  opts[:fields] = []
  [
   {campo: :cep, input_html: {class: "mask-cep"}},
   {campo: :logradouro},
   {campo: :numero},
   {campo: :complemento},
   {campo: :bairro},
   {campo: :estado, collection: Estado.order(:sigla).pluck(:sigla)},
   {campo: :cidade_id, collection_if: Proc.new{|f| f.try(:object).try(:estado).try(:present?) ? (f.try(:object).try(:estado).try(:cidades) || []) : []}}
  ].each do |field|
    attribute = field[:campo]
    field.delete(:campo)
    field[:label] ||= "shared.#{attribute}"
    opts[:fields].push({attribute: attribute,sf: field})
  end
  opts[:grupo] = true
  opts[:label] ||= "shared.adicionar_endereco"
  @@form_fields[self.to_s.to_sym].push(
    {
      attribute: :endereco
    }.merge({sf: opts})
  )
  @@form_scripts[self.to_s.to_sym] ||= []
  @@form_scripts[self.to_s.to_sym] << "cidade_estado"
end

.agrupar_campos(attribute, opts = {}, &block) ⇒ Object



426
427
428
429
430
431
432
433
434
# File 'app/raro_crud/raro_crud.rb', line 426

def self.agrupar_campos(attribute, opts = {}, &block)
  if opts[:label]
    @agrupamento = opts[:label]
  else
    @agrupamento = "simple_form.labels.#{self.modelo.underscore}.#{attribute}"
  end
  block.call
  @agrupamento = nil
end

.campo_busca(nome, opts = {}) ⇒ Object



337
338
339
340
341
342
343
344
345
# File 'app/raro_crud/raro_crud.rb', line 337

def self.campo_busca nome, opts = {}
  @@search_fields[self.to_s.to_sym] = [] unless @@search_fields[self.to_s.to_sym]
  opts = set_default_label nome, opts
  @@search_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.campo_impressao(nome, opts = {}) ⇒ Object



357
358
359
360
361
362
363
364
365
# File 'app/raro_crud/raro_crud.rb', line 357

def self.campo_impressao nome, opts = {}
  @@printing_fields[self.to_s.to_sym] = [] unless @@printing_fields[self.to_s.to_sym]
  opts = set_default_label nome, opts
  @@printing_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.campo_listagem(nome, opts = {}) ⇒ Object



347
348
349
350
351
352
353
354
355
# File 'app/raro_crud/raro_crud.rb', line 347

def self.campo_listagem nome, opts = {}
  @@listing_fields[self.to_s.to_sym] = [] unless @@listing_fields[self.to_s.to_sym]
  opts = set_default_label nome, opts
  @@listing_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.campo_visualizacao(nome, opts = {}) ⇒ Object



327
328
329
330
331
332
333
334
335
# File 'app/raro_crud/raro_crud.rb', line 327

def self.campo_visualizacao nome, opts = {}
  @@view_fields[self.to_s.to_sym] = [] unless @@view_fields[self.to_s.to_sym]
  opts = set_default_label nome, opts
  @@view_fields[self.to_s.to_sym].push(
    {
      attribute: nome
    }.merge({sf: opts})
  )
end

.condition_destroy_actionObject



73
74
75
# File 'app/raro_crud/raro_crud.rb', line 73

def self.condition_destroy_action
  (@@condition_destroy_action[self.to_s.to_sym]) ? @@condition_destroy_action[self.to_s.to_sym] : nil
end

.condition_edit_actionObject



61
62
63
# File 'app/raro_crud/raro_crud.rb', line 61

def self.condition_edit_action
  (@@condition_edit_action[self.to_s.to_sym]) ? @@condition_edit_action[self.to_s.to_sym] : nil
end

.condition_listing_actionObject



89
90
91
# File 'app/raro_crud/raro_crud.rb', line 89

def self.condition_listing_action
  (@@condition_listing_action[self.to_s.to_sym]) ? @@condition_listing_action[self.to_s.to_sym] : nil
end

.condition_listing_excelObject



93
94
95
# File 'app/raro_crud/raro_crud.rb', line 93

def self.condition_listing_excel
  (@@condition_listing_excel[self.to_s.to_sym]) ? @@condition_listing_excel[self.to_s.to_sym] : nil
end

.condition_listing_pdfObject



97
98
99
# File 'app/raro_crud/raro_crud.rb', line 97

def self.condition_listing_pdf
  (@@condition_listing_pdf[self.to_s.to_sym]) ? @@condition_listing_pdf[self.to_s.to_sym] : nil
end

.condition_printing_actionObject



101
102
103
# File 'app/raro_crud/raro_crud.rb', line 101

def self.condition_printing_action
  (@@condition_printing_action[self.to_s.to_sym]) ? @@condition_printing_action[self.to_s.to_sym] : nil
end

.condition_view_actionObject



85
86
87
# File 'app/raro_crud/raro_crud.rb', line 85

def self.condition_view_action
  (@@condition_view_action[self.to_s.to_sym]) ? @@condition_view_action[self.to_s.to_sym] : nil
end

.description(type) ⇒ Object



124
125
126
127
128
129
# File 'app/raro_crud/raro_crud.rb', line 124

def self.description(type)
  case type
  when :index
    @@description_index[self.to_s.to_sym]
  end
end

.destroy_actionObject



65
66
67
68
69
70
71
# File 'app/raro_crud/raro_crud.rb', line 65

def self.destroy_action
  if @@destroy_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.edicao(condicao) ⇒ Object



379
380
381
# File 'app/raro_crud/raro_crud.rb', line 379

def self.edicao(condicao)
  @@condition_edit_action[self.to_s.to_sym] = condicao
end

.edit_actionObject



44
45
46
47
48
49
50
# File 'app/raro_crud/raro_crud.rb', line 44

def self.edit_action
  if @@edit_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.escopos(scopes) ⇒ Object



422
423
424
# File 'app/raro_crud/raro_crud.rb', line 422

def self.escopos(scopes)
  @@scopes[self.to_s.to_sym] = scopes
end

.exclusao(condicao) ⇒ Object



387
388
389
# File 'app/raro_crud/raro_crud.rb', line 387

def self.exclusao(condicao)
  @@condition_destroy_action[self.to_s.to_sym] = condicao
end

.form_fieldsObject



159
160
161
# File 'app/raro_crud/raro_crud.rb', line 159

def self.form_fields
  (@@form_fields[self.to_s.to_sym]) ? @@form_fields[self.to_s.to_sym]  : []
end

.form_groupsObject



163
164
165
# File 'app/raro_crud/raro_crud.rb', line 163

def self.form_groups
  (@@form_group[self.to_s.to_sym]) ? @@form_group[self.to_s.to_sym]  : []
end

.form_scriptsObject



167
168
169
# File 'app/raro_crud/raro_crud.rb', line 167

def self.form_scripts
  (@@form_scripts[self.to_s.to_sym]) ? @@form_scripts[self.to_s.to_sym]  : []
end

.get_index_pathObject



113
114
115
# File 'app/raro_crud/raro_crud.rb', line 113

def self.get_index_path
  @@index_path
end

.grupo_formulario(attribute, name, fields = nil) ⇒ Object



440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
# File 'app/raro_crud/raro_crud.rb', line 440

def self.grupo_formulario(attribute, name, fields=nil)
  if fields.nil?
    fields = name
    name = attribute.to_s.singularize.titleize
  end
  @@form_group[self.to_s.to_sym] ||= {}
  @@form_group[self.to_s.to_sym][attribute] = {fields: []}
  fields.each do |field|
    value = {}
    field.each do |atr|
      if atr[0] == :campo
        value[:attribute] = atr[1]
      else
        value[:sf] ||= {}
        value[:sf][atr[0]] = atr[1]
      end
    end
    @@form_group[self.to_s.to_sym][attribute][:fields].push({attribute: value[:attribute], sf: value[:sf]})
  end
end

.impressao(condicao) ⇒ Object



403
404
405
# File 'app/raro_crud/raro_crud.rb', line 403

def self.impressao(condicao)
  @@condition_printing_action[self.to_s.to_sym] = condicao
end

.index_fieldsObject



135
136
137
# File 'app/raro_crud/raro_crud.rb', line 135

def self.index_fields
  (@@index_fields[self.to_s.to_sym]) ? @@index_fields[self.to_s.to_sym] : []
end

.index_path(str) ⇒ Object



109
110
111
# File 'app/raro_crud/raro_crud.rb', line 109

def self.index_path str
  @@index_path = str
end

.layoutObject



52
53
54
# File 'app/raro_crud/raro_crud.rb', line 52

def self.layout
  (@@layout[self.to_s.to_sym]) ? @@layout[self.to_s.to_sym] : []
end


412
413
414
415
# File 'app/raro_crud/raro_crud.rb', line 412

def self.links(name, options)
  @@links[self.to_s.to_sym] = [] unless @@links[self.to_s.to_sym]
  @@links[self.to_s.to_sym].push([name, options])
end

.listagem(condicao) ⇒ Object



391
392
393
# File 'app/raro_crud/raro_crud.rb', line 391

def self.listagem(condicao)
  @@condition_listing_action[self.to_s.to_sym] = condicao
end

.listagem_excel(condicao = nil) ⇒ Object



395
396
397
# File 'app/raro_crud/raro_crud.rb', line 395

def self.listagem_excel(condicao = nil)
  @@condition_listing_excel[self.to_s.to_sym] = condicao
end

.listagem_pdf(condicao = nil) ⇒ Object



399
400
401
# File 'app/raro_crud/raro_crud.rb', line 399

def self.listagem_pdf(condicao = nil)
  @@condition_listing_pdf[self.to_s.to_sym] = condicao
end

.listing_fieldsObject



175
176
177
# File 'app/raro_crud/raro_crud.rb', line 175

def self.listing_fields
  (@@listing_fields[self.to_s.to_sym]) ? @@listing_fields[self.to_s.to_sym]  : []
end


199
200
201
# File 'app/raro_crud/raro_crud.rb', line 199

def self.menus
  @@menus
end

.opcoes(link, desc, proc = nil) ⇒ Object



417
418
419
420
# File 'app/raro_crud/raro_crud.rb', line 417

def self.opcoes(link, desc, proc = nil)
  @@options_link[self.to_s.to_sym] = [] unless @@options_link[self.to_s.to_sym]
  @@options_link[self.to_s.to_sym].push([link, desc, proc])
end


155
156
157
# File 'app/raro_crud/raro_crud.rb', line 155

def self.options_link
  (@@options_link[self.to_s.to_sym]) ? @@options_link[self.to_s.to_sym] : []
end

.order_fieldObject



139
140
141
# File 'app/raro_crud/raro_crud.rb', line 139

def self.order_field
  (@@order_field[self.to_s.to_sym]).present? ? @@order_field[self.to_s.to_sym] : "id"
end

.per_pageObject



143
144
145
# File 'app/raro_crud/raro_crud.rb', line 143

def self.per_page
  @@per_page[self.to_s.to_sym]
end

.printing_fieldsObject



179
180
181
# File 'app/raro_crud/raro_crud.rb', line 179

def self.printing_fields
  (@@printing_fields[self.to_s.to_sym]) ? @@printing_fields[self.to_s.to_sym]  : []
end

.root_pathObject



105
106
107
# File 'app/raro_crud/raro_crud.rb', line 105

def self.root_path
  self.to_s.gsub('Crud', '').underscore
end

.scopesObject



191
192
193
# File 'app/raro_crud/raro_crud.rb', line 191

def self.scopes
  (@@scopes[self.to_s.to_sym]) ? @@scopes[self.to_s.to_sym]  : []
end

.script_formulario(script) ⇒ Object



490
491
492
493
# File 'app/raro_crud/raro_crud.rb', line 490

def self.script_formulario(script)
  @@form_scripts[self.to_s.to_sym] ||= []
  @@form_scripts[self.to_s.to_sym] << script.to_s
end

.search_fieldsObject



183
184
185
# File 'app/raro_crud/raro_crud.rb', line 183

def self.search_fields
  (@@search_fields[self.to_s.to_sym]) ? @@search_fields[self.to_s.to_sym]  : []
end

.sem_edicaoObject



375
376
377
# File 'app/raro_crud/raro_crud.rb', line 375

def self.sem_edicao
  @@edit_action[self.to_s.to_sym] = false
end

.sem_exclusaoObject



383
384
385
# File 'app/raro_crud/raro_crud.rb', line 383

def self.sem_exclusao
  @@destroy_action[self.to_s.to_sym] = false
end

.sem_visualizacaoObject



367
368
369
# File 'app/raro_crud/raro_crud.rb', line 367

def self.sem_visualizacao
  @@view_action[self.to_s.to_sym] = false
end

.separar_formularioObject



436
437
438
# File 'app/raro_crud/raro_crud.rb', line 436

def self.separar_formulario
  @@form_fields[self.to_s.to_sym].last[:sf][:separador] = true
end

.set_layout(desc, proc = nil) ⇒ Object



56
57
58
59
# File 'app/raro_crud/raro_crud.rb', line 56

def self.set_layout(desc, proc = nil)
  @@layout[self.to_s.to_sym] = [] unless @@layout[self.to_s.to_sym]
  @@layout[self.to_s.to_sym] = [desc, proc]
end

.subtitle(type) ⇒ Object



117
118
119
120
121
122
# File 'app/raro_crud/raro_crud.rb', line 117

def self.subtitle(type)
  case type
  when :index
    @@subtitle_index[self.to_s.to_sym]
  end
end

.test_fieldsObject



187
188
189
# File 'app/raro_crud/raro_crud.rb', line 187

def self.test_fields
  (@@test_fields[self.to_s.to_sym]) ? @@test_fields[self.to_s.to_sym]  : []
end

.titleObject



40
41
42
# File 'app/raro_crud/raro_crud.rb', line 40

def self.title
  I18n.t("rarocrud.#{self.modelo.underscore}.title")
end


131
132
133
# File 'app/raro_crud/raro_crud.rb', line 131

def self.top_links
  (@@top_links[self.to_s.to_sym]) ? @@top_links[self.to_s.to_sym] : []
end

.view_actionObject



77
78
79
80
81
82
83
# File 'app/raro_crud/raro_crud.rb', line 77

def self.view_action
  if @@view_action[self.to_s.to_sym] == false
    return false
  else
    return true
  end
end

.view_fieldsObject



171
172
173
# File 'app/raro_crud/raro_crud.rb', line 171

def self.view_fields
  (@@view_fields[self.to_s.to_sym]) ? @@view_fields[self.to_s.to_sym]  : []
end

.visualizacao(condicao) ⇒ Object



371
372
373
# File 'app/raro_crud/raro_crud.rb', line 371

def self.visualizacao(condicao)
  @@condition_view_action[self.to_s.to_sym] = condicao
end

Instance Method Details

#modeloObject



36
37
38
# File 'app/raro_crud/raro_crud.rb', line 36

def modelo
  self.to_s.gsub("Crud", "").constantize
end