Class: String

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

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

#camel_to_usObject



15
16
17
18
# File 'lib/extensions/string.rb', line 15

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)


20
21
22
# File 'lib/extensions/string.rb', line 20

def is_numeric?
  Float self rescue false
end

#portfolio_feed_idObject



24
25
26
# File 'lib/extensions/string.rb', line 24

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

#portfolio_idObject



41
42
43
44
45
46
47
# File 'lib/extensions/string.rb', line 41

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



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

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

#position_idObject



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

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



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

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

#transaction_idObject



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

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