A handler for storing TimeOfDay objects in ActiveRecord objects as SQL time values.
Also adds load/dump of TimeOfDay objects to and from YAML streams, so you can use them in fixtures.
Also adds JSON encode/decode.
The gem supports MRI and JRuby at Ruby 2.2 language level and later. Other Ruby implementations may work.
ActiveRecord 3.2 and later supported.
Add this line to your application's Gemfile:
gem 'activerecord-time'
And then execute:
$ bundle
Or install it yourself as:
$ gem install activerecord-time
Create your tables with fields with type :time and you will be able to access them as TimeOfDay objects.
create_table :schedules do |t|
...
t.time :start_at
...
endor
create_table :schedules do |table|
...
t.column :start_at, :time
...
endor
add_column :schedule, :start_time, :timeThe value of the column will be a TimeOfDay object:
schedule = Schedule.new
schedule.start_time = TimeOfDay.parse('08:34')or
schedule = Schedule.new
schedule.start_time = '08:34'Kernel is extended with a TimeOfDay constructor that takes either a parseable String or one or more integers.
party_starts_at = TimeOfDay('17:59')
dancing_starts_at = TimeOfDay(20, 02)Ruby Date objects are extended with the at method that takes a TimeOfDay
argument to produce a Ruby Time object. As a shortcut, a String that is
parseable by TimeOfDay can be given.
halloween = Date.parse('2015-10-31')
trick_or_treat = halloween.at(TimeOfDay.parse('18:00'))
halloween_dinner = halloween.at('20:00')Ruby Time objects are extended with the time_of_day method that returns a
TimeOfDay object corresponding to the time of day of the Time object.
Time.parse('2015-10-31 20:00').time_of_day # returns TimeOfDay(20, 0)- 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
Run tests using
rake
./matrix_test.rb
This will run the tests for the same environments as travis-ci.