Sha256: 724a7bd98e665e3eabc160b762e72b2a8ad0145951c71d943f692dbd68f4d09a
Contents?: true
Size: 1.03 KB
Versions: 17
Compression:
Stored size: 1.03 KB
Contents
# frozen_string_literal: true module RuboCop module Cop module Rails # This cop checks for the use of `Time.zone=` method. # # The `zone` attribute persists for the rest of the Ruby runtime, potentially causing # unexpected behavior at a later time. # Using `Time.use_zone` ensures the code passed in the block is the only place Time.zone is affected. # It eliminates the possibility of a `zone` sticking around longer than intended. # # @example # # bad # Time.zone = 'EST' # # # good # Time.use_zone('EST') do # end # class TimeZoneAssignment < Base MSG = 'Use `Time.use_zone` with block instead of `Time.zone=`.' RESTRICT_ON_SEND = %i[zone=].freeze def_node_matcher :time_zone_assignement?, <<~PATTERN (send (const nil? :Time) :zone= ...) PATTERN def on_send(node) return unless time_zone_assignement?(node) add_offense(node) end end end end end
Version data entries
17 entries across 17 versions & 2 rubygems