Module: ActiveCrud

Defined in:
lib/active_crud.rb,
lib/active_crud/version.rb

Defined Under Namespace

Classes: Error

Constant Summary collapse

VERSION =
"0.1.1"

Class Method Summary collapse

Class Method Details

.create_record(model, record_params) ⇒ Object



9
10
11
12
13
14
15
16
17
# File 'lib/active_crud.rb', line 9

def self.create_record(model, record_params)
  record = model.new(record_params)

  if record.save
    { message: 'Record created successfully', record: record }
  else
    { error: 'Failed to create record', errors: record.errors }
  end
end

.delete_record(model, id) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
# File 'lib/active_crud.rb', line 41

def self.delete_record(model, id)
  record = model.find(id)

  if record.destroy
    { message: 'Record deleted successfully' }
  else
    { error: 'Failed to delete record' }
  end
rescue ActiveRecord::RecordNotFound
  { error: 'Record not found' }
end

.paginate_records(model, page, per_page) ⇒ Object



57
58
59
60
# File 'lib/active_crud.rb', line 57

def self.paginate_records(model, page, per_page)
  page = page.to_i.positive? ? page.to_i : 1
  model.paginate(page: page, per_page: per_page)
end

.retrieve_all_records(model) ⇒ Object



19
20
21
# File 'lib/active_crud.rb', line 19

def self.retrieve_all_records(model)
  model.all
end

.retrieve_record(model, id) ⇒ Object



23
24
25
26
27
# File 'lib/active_crud.rb', line 23

def self.retrieve_record(model, id)
  model.find(id)
rescue ActiveRecord::RecordNotFound
  { error: 'Record not found' }
end

.search_records(model, attribute_names, search, model_name = nil) ⇒ Object



62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/active_crud.rb', line 62

def self.search_records(model, attribute_names, search, model_name = nil)
  model_name ||= model.name
  conditions = []

  attribute_names.each do |attribute_name|
    conditions << "#{model_name.downcase.pluralize}.#{attribute_name} LIKE '%#{search}%'" if search.present?
  end

  if conditions.present?
    model.where(conditions.join(' OR '))
  else
    model.all
  end
end

.sort_records(model, attribute, order = 'asc') ⇒ Object



53
54
55
# File 'lib/active_crud.rb', line 53

def self.sort_records(model, attribute, order = 'asc')
  model.order(attribute => order)
end

.update_record(model, id, params) ⇒ Object



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

def self.update_record(model, id, params)
  record = model.find(id)

  if record.update(params)
    { message: 'Record updated successfully', record: record }
  else
    { error: 'Failed to update record', errors: record.errors }
  end
rescue ActiveRecord::RecordNotFound
  { error: 'Record not found' }
end