Rakefire / jekyll-ical-tag

Pull ICS feed and provide a for-like loop of calendar events in jekyll's liquid tag
7 stars 6 forks source link

Liquid Exception: uninitialized constant Icalendar::Values::Array #44

Closed yassine-hamoudi closed 6 months ago

yassine-hamoudi commented 6 months ago

Hi,

I get the following error when running bundle exec jekyll build (I've added a gemfile with gem 'jekyll-ical-tag' and bundle install works fine):

 Liquid Exception: uninitialized constant Icalendar::Values::Array in _pages/home.md
                    ------------------------------------------------
      Jekyll 4.2.1   Please append `--trace` to the `serve` command 
                     for any additional information or backtrace. 
                    ------------------------------------------------
 Traceback (most recent call last):
    68: from /Users/username/.rbenv/versions/2.7.2/bin/bundle:23:in `<main>'
    67: from /Users/username/.rbenv/versions/2.7.2/bin/bundle:23:in `load'
    66: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/exe/bundle:37:in `<top (required)>'
    65: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
    64: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/exe/bundle:49:in `block in <top (required)>'
    63: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli.rb:24:in `start'
    62: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    61: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli.rb:30:in `dispatch'
    60: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    59: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    58: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    57: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli.rb:497:in `exec'
    56: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli/exec.rb:28:in `run'
    55: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli/exec.rb:63:in `kernel_load'
    54: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bundler-2.2.3/lib/bundler/cli/exec.rb:63:in `load'
    53: from /Users/username/.rbenv/versions/2.7.2/bin/jekyll:23:in `<top (required)>'
    52: from /Users/username/.rbenv/versions/2.7.2/bin/jekyll:23:in `load'
    51: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/exe/jekyll:15:in `<top (required)>'
    50: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary.rb:21:in `program'
    49: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/program.rb:44:in `go'
    48: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `execute'
    47: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `each'
    46: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/mercenary-0.4.0/lib/mercenary/command.rb:221:in `block in execute'
    45: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/commands/serve.rb:86:in `block (2 levels) in init_with_program'
    44: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `process_with_graceful_fail'
    43: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `each'
    42: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:91:in `block in process_with_graceful_fail'
    41: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:36:in `process'
    40: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/commands/build.rb:65:in `build'
    39: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/command.rb:28:in `process_site'
    38: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:80:in `process'
    37: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:211:in `render'
    36: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:538:in `render_pages'
    35: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:538:in `each'
    34: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:539:in `block in render_pages'
    33: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/site.rb:547:in `render_regenerated'
    32: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:63:in `run'
    31: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:80:in `render_document'
    30: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/renderer.rb:131:in `render_liquid'
    29: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:36:in `render!'
    28: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:70:in `measure_time'
    27: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:37:in `block in render!'
    26: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:63:in `measure_bytes'
    25: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:38:in `block (2 levels) in render!'
    24: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:59:in `measure_counts'
    23: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-4.2.1/lib/jekyll/liquid_renderer/file.rb:39:in `block (3 levels) in render!'
    22: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/template.rb:218:in `render!'
    21: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/template.rb:205:in `render'
    20: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/template.rb:240:in `with_profiling'
    19: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/template.rb:206:in `block in render'
    18: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/block_body.rb:82:in `render'
    17: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/block_body.rb:103:in `render_node_to_output'
    16: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag.rb:33:in `render'
    15: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/liquid-4.0.4/lib/liquid/context.rb:123:in `stack'
    14: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag.rb:43:in `block in render'
    13: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_feed_coordinator.rb:17:in `events'
    12: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_limiter.rb:37:in `events'
    11: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_limiter.rb:37:in `events'
    10: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_limiter.rb:37:in `events'
     9: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_limiter.rb:25:in `events'
     8: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_limiter.rb:16:in `events'
     7: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_parser.rb:16:in `events'
     6: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_parser.rb:16:in `map'
     5: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_parser.rb:16:in `block in events'
     4: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/calendar_parser.rb:16:in `new'
     3: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/event.rb:34:in `initialize'
     2: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/event.rb:80:in `setup_all_properties!'
     1: from /Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/event.rb:80:in `transform_values!'
/Users/username/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/jekyll-ical-tag-1.4.0/lib/jekyll-ical-tag/event.rb:83:in `block in setup_all_properties!': uninitialized constant Icalendar::Values::Array (NameError)
rickychilcott commented 6 months ago

What version of the icalender gem are you using?

rickychilcott commented 6 months ago

I think I fixed it in 82c5cbc2072170b23aa6394e0f0d3ddc2362e133. Can you try version 1.5 of this gem and see if it fixes it?

It seems like the Icalendar::Values::Array class got renamed to Icalendar::Values::Helpers::Array

yassine-hamoudi commented 6 months ago

Thanks for your quick reply. I made the update and the error message is gone. However, I didn't succeed displaying any calendar yet. Depending on the ics file, I either get nothing (the fetching seems to work, but nothing is displayed) or /usr/local/lib/ruby/gems/3.3.0/gems/jekyll-ical-tag-1.5/lib/jekyll-ical-tag/event.rb:95:in 'block in setup_all_properties!': undefined method 'presence' for an instance of Time (NoMethodError) (ex with: https://www.phpclasses.org/browse/download/1/file/63438/name/example.ics)

rickychilcott commented 6 months ago

I was going to make a joke about an incompatability with phpclasses.org, but I won't make it.

This is what I get for not clamping down version constraints. 87495c3edd9ef28559b84409127fec13fb72b0b1 fixes it and is released in version 1.5.1

yassine-hamoudi commented 6 months ago

It works!

rickychilcott commented 6 months ago

Great!