Sha256: ede0fbecaa81b8989f3c1480375be30b078dd00dee989080c16f8847aac9b01c

Contents?: true

Size: 1.19 KB

Versions: 10

Compression:

Stored size: 1.19 KB

Contents

# OptionsModel

An ActiveModel implementation that make easier to handle model which will be serialized in a real model.

support attribute:

- all types that `ActiveModel::Type` support
- typed array
- enum
- embeds one

## Usage

```ruby
class Person < OptionsModel::Base
 attribute :name, :string
 attribute :age, :integer

 validates :name, presence: true
end

class Book < OptionsModel::Base
 embeds_one :author, class_name: 'Person'

 attribute :title,     :string
 attribute :tags,      :string,   array:   true
 attribute :price,     :decimal,  default: 0
 attribute :bought_at, :datetime, default: -> { Time.new } 

 validates :title, presence: true
end
```

## Installation
Add this line to your application's Gemfile:

```ruby
gem 'options_model'
```

And then execute:
```bash
$ bundle
```

## Contributing

1. Fork it
2. Create your feature branch (`git checkout -b my-new-feature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin my-new-feature`)
5. Create new Pull Request

Please write unit test with your code if necessary.

## License
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
options_model-0.0.16 README.md
options_model-0.0.15 README.md
options_model-0.0.14 README.md
options_model-0.0.13 README.md
options_model-0.0.12 README.md
options_model-0.0.11 README.md
options_model-0.0.10 README.md
options_model-0.0.9 README.md
options_model-0.0.8 README.md
options_model-0.0.7 README.md