ArrayModel is a class to create ActiveRecord / Sequel style models from simple arrays and hashes. This is useful for integrating simple reference data into an application without having to create many small tables that will never change.
As data should be never change while the application is running, the model objects that are created are read only. The data can come either from a constant in the ruby script itself, or from the filesystem as a YAML or JSON file.
Example:
USERS = [
{ name: 'Nathan', year: 1984 },
{ name: 'Dave', year: 1987 }
]
class User < ArrayModel
model_data USERS
attr_model_reader :name
attr_model_reader :year
def age
Time.now.year - year
end
end
User[0].age # => 32
User[1].name # => "Dave"