statianzo / que-web

A web interface for the Que queue
BSD 3-Clause "New" or "Revised" License
88 stars 51 forks source link

undefined method utc for string #81

Open AlanLattimore opened 4 years ago

AlanLattimore commented 4 years ago

Dependencies

PgSQL 12 ruby: 2.6.5 rails: 5.2.3 pg: 1.1.4 que: 1.0.0.beta4 (commit 065981) que-web: HEAD (commit 3f7b7b7)

Reproduce Condition

Visit /que/scheduled

How System Behaves

My best guess so far is que-web/lib/que/web.rb:39

scheduled_jobs = Que.execute SQL[:scheduled_jobs], [pager.page_size, pager.offset, search]

returns run_at as a string, example: "2020-09-06 22:17:03"

The relative_time helper expects a Time object at lib/que/web.rb:189

      def relative_time(time)
        %{<time class="timeago" datetime="#{time.utc.iso8601}">#{time.utc}</time>}
      end

and the String class is missing .utc

Proposed Solution

https://github.com/AlanLattimore/que-web/tree/undefined-method-utc-for-string

      def relative_time(time)
        time = Time.parse(time) if time.is_a?(String)
        %{<time class="timeago" datetime="#{time.utc.iso8601}">#{time.utc}</time>}
      end

based on https://github.com/que-rb/que/commit/87d40e7e1501346f4a92871c789df69863eaf94f

AlanLattimore commented 4 years ago

I understand that que: 1.0.0.beta4 is not supported but I've done the research and I hope this might help someone else.

statianzo commented 4 years ago

Thanks for digging in @AlanLattimore. Looks good to me. Can you make this a PR and add a test to spec/web_spec.rb?

AlanLattimore commented 4 years ago

Will do.