SuperAccessors
Supported split datetime attributes, store hash key datatypes (Integer, String, Boolean)
Installation
Add this line to your application's Gemfile:
gem 'super_accessors'
And then execute:
$ bundle
Or install it yourself as:
$ gem install super_accessors
Usage
Split Date / Time
# app/models/user.rb
class Ticket < ActiveRecord::Base
split_date_hour_min :depart_datetime, default: lambda { Time.now + 1.day }
ticket.depart_time_start_date = '2013/10/20'
ticket.depart_time_start_time = '20:10'
# '2013/10/20 20:10'
end
Split Date / Hour / Min
class Ticket < ActiveRecord::Base
split_date_time :depart_time_start, default: lambda { Time.now + 1.day }
end
ticket = Ticket.new
ticket.depart_time_start_date = '2013/10/20'
ticket.depart_time_start_hr = '10'
ticket.depart_time_start_min = '20'
# '2013/10/20 10:20'
Store
# app/models/user.rb
class User < ActiveRecord::Base
store_define :contact_info, accessors: {name: :s, zipcode: :i, mobile: :s, available: :b}
end
@user.name = 123
"123"
@user.zipcode = "123"
123
@user.available = 1
true
Checkboxes with Store
# app/models/user.rb
class User < ActiveRecord::Base
store_define :role, accessors: {admin: :b, manager: :b, user: :b}, checkboxes: true
end
# show all true option keys
@user.role_keys
[:admin, :manager]
# show all true option with i18n
@user.role_options
['管理員', '使用者']
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request