0.0
No commit activity in last 3 years
No release in over 3 years
An aim or this gem is to provide an agile and comfortable way for Ruby developers to get rid of unnecessary data within their project databases.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project Readme

General Build Status

An aim for this gem is to provide an agile and comfortable way for Ruby developers to get rid of unnecessary data within their project databases. Weather I succeed with it or not is up to you. I will appreciate any advice or help.

System Configuration

In order to setup system configuration add somewhere in project following code

require 'undestroyable'

Undestroyable.config.setup do
  orm :active_record
end

After that you may activate undestroyable for specific model

class Country < ActiveRecord::Base
  undestroyable
end

Default strategy is: :column. You may overwrite system strategy by providing a block to undestroyable

class Country < ActiveRecord::Base
  undestroyable do
    strategy :dump
  end
end

That will save objects dump into 'dump' table. There is also a possibility for setting default system starategy:

Undestroyable.config.setup do
  orm :active_record
  strategy :table
  table_suffix :old
end

class Country < ActiveRecord::Base
  undestroyable
end

That will move deleted record from 'countries' table into 'countries_deleted'. In case 'countries_deleted' contains 'deleted_at' filed it will be updated. If, due to some reason, a different table name is required it can also be provided:

Undestroyable.config.setup do
  orm :active_record
  strategy :table
  table_suffix :old
end

class Country < ActiveRecord::Base
  undestroyable do
    table_name :scrap
  end
end

In that case, the record will be moved from 'countries' table into 'scrap_deleted'.

Options:

  • orm (ONLY FOR SYSTEM CONFIG) Specifies which orm is used by project
  • strategy Specifies which strategy should be used
  • table_name Same as model table.
  • table_suffix Default prefix is: deleted
  • full_table_name table_prefix + table_name + table_suffix.
  • connection Keeps connection information. NB! Compulsary for :database startegy.

Strategies

  • none Deletes record, as with usual destroy method.
  • column Updates deleted_at column of the record. This is default strategy, if undestroyable is activated for model.
  • table Move record into separate table
  • database Move record into separate table in remote database

Simple usage example:

class Bill < ActiveRecord::Base
  undestroyable
end

Complicated usage example:

class ConceptCat < Vehicle
  undstroyable do
    startegy :database
    connection { adapter: "sqlite3", dbfile: ":memory:"}
    table_name :scrap
    table_suffix :metalic
  end
end

Bitdeli Badge