Class: Stringtrain::Cab
- Inherits:
-
Object
- Object
- Stringtrain::Cab
- Defined in:
- lib/stringtrain/cab.rb
Instance Attribute Summary collapse
-
#part_separator ⇒ Object
Returns the value of attribute part_separator.
-
#parts ⇒ Object
Returns the value of attribute parts.
Instance Method Summary collapse
-
#initialize(opts = {}, &block) ⇒ Cab
constructor
A new instance of Cab.
- #part(string, opts = {}) ⇒ Object
-
#to_s ⇒ String
The resultant string.
Constructor Details
#initialize(opts = {}, &block) ⇒ Cab
Returns a new instance of Cab.
9 10 11 12 13 14 15 16 |
# File 'lib/stringtrain/cab.rb', line 9 def initialize(opts={}, &block) opts = { part_separator: ' ' }.merge(opts) self.parts = [] self.part_separator = opts[:part_separator] if block_given? block.arity == 1 ? yield(self) : instance_eval(&block) end end |
Instance Attribute Details
#part_separator ⇒ Object
Returns the value of attribute part_separator.
5 6 7 |
# File 'lib/stringtrain/cab.rb', line 5 def part_separator @part_separator end |
#parts ⇒ Object
Returns the value of attribute parts.
5 6 7 |
# File 'lib/stringtrain/cab.rb', line 5 def parts @parts end |
Instance Method Details
#part(string, opts = {}) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/stringtrain/cab.rb', line 42 def part(string, opts={}) opts = { condition: true, prefix: nil, suffix: nil, surround_with: nil }.merge(opts) pieces = [opts[:prefix], string, opts[:suffix]] part = if opts[:surround_with].respond_to?(:fetch) pieces.insert(-1,opts[:surround_with].last) pieces.insert(1,opts[:surround_with].first) pieces.compact.join else pieces.compact.join(opts[:surround_with]) end if !string.blank? parts << part if opts[:condition] end end |
#to_s ⇒ String
Returns The resultant string.
58 59 60 |
# File 'lib/stringtrain/cab.rb', line 58 def to_s parts.join(self.part_separator) end |