plashchynski/crono

undefined method `compact'

abdullah353 opened this issue · 1 comments

After Following your installation steps i am receiving this error.

bundle exec crono 
undefined method `compact' for {:hour=>15, :min=>30}:Hash
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:68:in `time_atts'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:32:in `initial_next'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/period.rb:14:in `next'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:16:in `initialize'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:10:in `every'
/var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `block in require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:213:in `load_dependency'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.0.0/lib/active_support/dependencies.rb:228:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>'
/usr/local/bin/crono:23:in `load'
/usr/local/bin/crono:23:in `<main>'

cat _config/cronotab.rb_

# cronotab.rb — Crono configuration file
#
# Here you can specify periodic jobs and schedule.
# You can use ActiveJob's jobs from `app/jobs/`
# You can use any class. The only requirement is that
# class should have a method `perform` without arguments.
#
 class TestJob
   def perform
     puts 'Test!'
   end
 end
#
 Crono.perform(TestJob).every 2.days, at: '15:30'
#

Rails Version 4.0.0
Ruby Version 2.1.0p0

After upgrading _Rails to 4.1.0_ i am getting this error, It's because of gem protected_attributes that i am using. instead of strong parameter

undefined method `sanitize_forbidden_attributes' for #<Crono::CronoJob:0xbc9966fc>
/usr/local/lib/ruby/gems/2.1.0/gems/activemodel-4.1.0/lib/active_model/attribute_methods.rb:435:in `method_missing'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/attribute_methods.rb:206:in `method_missing'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_model/mass_assignment_security.rb:354:in `sanitize_for_mass_assignment'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/attribute_assignment.rb:58:in `assign_attributes'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/core.rb:198:in `initialize'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/persistence.rb:45:in `create'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `block in create'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:286:in `scoping'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/relation.rb:132:in `create'
/usr/local/lib/ruby/gems/2.1.0/gems/protected_attributes-1.1.3/lib/active_record/mass_assignment_security/relation.rb:57:in `find_or_create_by'
/usr/local/lib/ruby/gems/2.1.0/gems/activerecord-4.1.0/lib/active_record/querying.rb:6:in `find_or_create_by'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:102:in `model'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/job.rb:49:in `load'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/scheduler.rb:11:in `add_job'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/performer_proxy.rb:11:in `every'
/var/www/billgist/web_app/config/cronotab.rb:14:in `<top (required)>'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `block in require'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:232:in `load_dependency'
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.0/lib/active_support/dependencies.rb:247:in `require'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cronotab.rb:7:in `process'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/lib/crono/cli.rb:24:in `run'
/usr/local/lib/ruby/gems/2.1.0/gems/crono-0.9.0/exe/crono:8:in `<top (required)>'
/usr/local/bin/crono:23:in `load'
/usr/local/bin/crono:23:in `<main>'

Then After Migrating to _Rails 4.2.0_ it's working now