Class: String

Inherits:
Object
  • Object
show all
Defined in:
lib/extensions/string.rb

Overview

String

GMoney String Extensions

Defined Under Namespace

Classes: ParseError, PortfolioParseError, PositionParseError, TransactionParseError

Constant Summary collapse

@@portfolio_re =
/\d+/
@@portfolio_re_in =
/^\d+$/
@@position_re =
/\d+\/[a-zA-Z]+:[a-zA-Z]+/
@@position_re_in =
/^\d+\/[a-zA-Z]+:[a-zA-Z]+$/
@@transaction_re =
/\d+\/[a-zA-Z]+:[a-zA-Z]+\/\d+/
@@transaction_re_in =
/^\d+\/[a-zA-Z]+:[a-zA-Z]+\/\d+$/

Instance Method Summary collapse

Instance Method Details

#blank?Boolean

Returns:

  • (Boolean)


83
84
85
# File 'lib/extensions/string.rb', line 83

def blank?
  respond_to?(:empty?) ? self.strip.empty? : !self
end

#camel_to_usObject



27
28
29
30
# File 'lib/extensions/string.rb', line 27

def camel_to_us
  add_us = gsub(/(.)([A-Z][a-z]+)/, '\1_\2')
  add_us.gsub(/([a-z0-9])([A-Z])/, '\1_\2').downcase  
end

#is_numeric?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/extensions/string.rb', line 32

def is_numeric?
  Float self rescue false
end

#portfolio_feed_idObject



36
37
38
# File 'lib/extensions/string.rb', line 36

def portfolio_feed_id
  self[self.rindex('/')+1..-1]
end

#portfolio_idObject



53
54
55
56
57
58
59
# File 'lib/extensions/string.rb', line 53

def portfolio_id
  if self[@@transaction_re_in] || self[@@position_re_in] || self[@@portfolio_re_in]
    self[@@portfolio_re]
  else
    raise PortfolioParseError
  end
end

#position_feed_idObject



40
41
42
43
44
# File 'lib/extensions/string.rb', line 40

def position_feed_id
 portfolio = finance_feed_id_helper('portfolios', 11)
 position = self[rindex('/')+1..-1]
 "#{portfolio}/#{position}"
end

#position_idObject



61
62
63
64
65
66
67
68
69
70
71
# File 'lib/extensions/string.rb', line 61

def position_id
  if self[@@portfolio_re_in] 
    ""
  elsif self[@@position_re_in] 
    self[self.index('/')+1..-1]  
  elsif self[@@transaction_re_in]
    self[self.index('/')+1..self.rindex('/')-1] 
  else
    raise PositionParseError
  end
end

#transaction_feed_idObject



46
47
48
49
50
51
# File 'lib/extensions/string.rb', line 46

def transaction_feed_id
 portfolio = finance_feed_id_helper('portfolios', 11)
 position = finance_feed_id_helper('positions', 10)
 transaction = self[rindex('/')+1..-1]
 "#{portfolio}/#{position}/#{transaction}"
end

#transaction_idObject



73
74
75
76
77
78
79
80
81
# File 'lib/extensions/string.rb', line 73

def transaction_id
  if self[@@position_re_in] 
    ""
  elsif self[@@transaction_re_in]
    self[self.rindex('/')+1..-1] 
  else
    raise TransactionParseError
  end
end