module I18n::Tests::Localization::Procs

def self.inspect_args(args, kwargs)

def self.inspect_args(args, kwargs)
  args << kwargs
  args = args.map do |arg|
    case arg
    when ::Time, ::DateTime
      arg.strftime('%a, %d %b %Y %H:%M:%S %Z').sub('+0000', '+00:00')
    when ::Date
      arg.strftime('%a, %d %b %Y')
    when Hash
      arg.delete(:fallback_in_progress)
      arg.delete(:fallback_original_locale)
      arg.inspect
    else
      arg.inspect
    end
  end
  "[#{args.join(', ')}]"
end

def setup_time_proc_translations

def setup_time_proc_translations
  I18n.backend.store_translations :ru, {
    :time => {
      :formats => {
        :proc => lambda { |*args, **kwargs| I18n::Tests::Localization::Procs.inspect_args(args, kwargs) }
      }
    },
    :date => {
      :formats => {
        :proc => lambda { |*args, **kwargs| I18n::Tests::Localization::Procs.inspect_args(args, kwargs) }
      },
      :'day_names' => lambda { |key, options|
        (options[:format] =~ /^%A/) ?
        %w(Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота) :
        %w(воскресенье понедельник вторник среда четверг пятница суббота)
      },
      :'month_names' => lambda { |key, options|
        (options[:format] =~ /(%d|%e)(\s*)?(%B)/) ?
        %w(января февраля марта апреля мая июня июля августа сентября октября ноября декабря).unshift(nil) :
        %w(Январь Февраль Март Апрель Май Июнь Июль Август Сентябрь Октябрь Ноябрь Декабрь).unshift(nil)
      },
      :'abbr_month_names' => lambda { |key, options|
        (options[:format] =~ /(%d|%e)(\s*)(%b)/) ?
        %w(янв. февр. марта апр. мая июня июля авг. сент. окт. нояб. дек.).unshift(nil) :
        %w(янв. февр. март апр. май июнь июль авг. сент. окт. нояб. дек.).unshift(nil)
      },
    }
  }
end