Class: LookLike::Support

Inherits:
Object
  • Object
show all
Defined in:
lib/look_like/support.rb

Constant Summary collapse

@@DATE_CHARS =
/[DMYHSmhs\d]/
@@DATE_STAMP_REGEX =
/^[\/x]+$/
@@TIME_STAMP_REGEX =
/^[\/x\-\:TZ\s]+$/

Class Method Summary collapse

Class Method Details

.amount?(string) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
16
# File 'lib/look_like/support.rb', line 13

def self.amount?(string)
  rounded = string.sub(".", ",").strip
  /^\$[\s]*[\d,]+\d$/ === rounded
end

.amount_def?(expected) ⇒ Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/look_like/support.rb', line 45

def self.amount_def?(expected)
  amount?(expected.sub(/^[^\d]+/, "$"))
end

.currency_of(amount) ⇒ Object



33
34
35
# File 'lib/look_like/support.rb', line 33

def self.currency_of(amount)
  amount.end_with?("amount") ? amount.split("amount")[0].strip :  amount[/^[^\d]+/].strip
end

.date?(stamp) ⇒ Boolean

Returns:

  • (Boolean)


53
54
55
# File 'lib/look_like/support.rb', line 53

def self.date?(stamp)
  stamp.include?("x") && @@DATE_STAMP_REGEX === stamp
end

.email?(string) ⇒ Boolean

Returns:

  • (Boolean)


41
42
43
# File 'lib/look_like/support.rb', line 41

def self.email?(string)
  string.include?("@") && !string.include?("/")  && loose_url?(string)
end

.enum?(string) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/look_like/support.rb', line 22

def self.enum?(string)
  /^[^\/]+[\/][^\/]/ === string
end

.enum_values(list) ⇒ Object



37
38
39
# File 'lib/look_like/support.rb', line 37

def self.enum_values(list)
  list.split("/").map{|value| value.strip()}
end

.loose_url?(string) ⇒ Boolean

Returns:

  • (Boolean)


26
27
28
29
30
31
# File 'lib/look_like/support.rb', line 26

def self.loose_url?(string)
  if(string.strip.length && string.include?("."))
    string = "http://" + string
  end
  !!(string =~ /\A#{URI::regexp}\z/)
end

.mask_date(stamp) ⇒ Object



57
58
59
# File 'lib/look_like/support.rb', line 57

def self.mask_date(stamp)
  stamp.gsub(@@DATE_CHARS, "x")
end

.normalize_currency(amount) ⇒ Object



18
19
20
# File 'lib/look_like/support.rb', line 18

def self.normalize_currency(amount)
  (amount.nil? || amount.empty?) ?  "" : amount.sub(currency_of(amount), "$")
end

.time?(stamp) ⇒ Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/look_like/support.rb', line 49

def self.time?(stamp)
  stamp.include?("x") && @@TIME_STAMP_REGEX === stamp
end

.url?(string) ⇒ Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/look_like/support.rb', line 9

def self.url?(string)
  !!(string =~ /\A#{URI::regexp}\z/)
end