Module: SiteMaps::Builder::Normalizer

Extended by:
Normalizer
Included in:
Normalizer
Defined in:
lib/site_maps/builder/normalizer.rb

Instance Method Summary collapse

Instance Method Details

#format_float(value) ⇒ Object



7
8
9
# File 'lib/site_maps/builder/normalizer.rb', line 7

def format_float(value)
  value.is_a?(String) ? value : ("%0.1f" % value)
end

#w3c_date(date) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/site_maps/builder/normalizer.rb', line 23

def w3c_date(date)
  if date.is_a?(String)
    date
  elsif date.respond_to?(:iso8601)
    date.iso8601.sub(/Z$/i, "+00:00")
  elsif date.is_a?(Date) && defined?(DateTime) && !date.is_a?(DateTime)
    date.strftime("%Y-%m-%d")
  else
    zulutime = if defined?(DateTime) && date.is_a?(DateTime)
      date.new_offset(0)
    elsif date.respond_to?(:utc)
      date.utc
    elsif date.is_a?(Integer)
      Time.at(date).utc
    end

    if zulutime
      zulutime.strftime("%Y-%m-%dT%H:%M:%S+00:00")
    else
      zone = date.strftime("%z").insert(-3, ":")
      date.strftime("%Y-%m-%dT%H:%M:%S") + zone
    end
  end
end

#yes_or_no(value) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/site_maps/builder/normalizer.rb', line 11

def yes_or_no(value)
  if value.is_a?(String) && value.match?(/\A(yes|no)\z/i)
    value.downcase
  else
    value ? "yes" : "no"
  end
end

#yes_or_no_with_default(value, default) ⇒ Object



19
20
21
# File 'lib/site_maps/builder/normalizer.rb', line 19

def yes_or_no_with_default(value, default)
  value.nil? ? yes_or_no(default) : yes_or_no(value)
end