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
- .create_record(model, record_params) ⇒ Object
- .delete_record(model, id) ⇒ Object
- .paginate_records(model, page, per_page) ⇒ Object
- .retrieve_all_records(model) ⇒ Object
- .retrieve_record(model, id) ⇒ Object
- .search_records(model, attribute_names, search, model_name = nil) ⇒ Object
- .sort_records(model, attribute, order = 'asc') ⇒ Object
- .update_record(model, id, params) ⇒ Object
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 |