Class: String
- Defined in:
- lib/sugar-high/file.rb,
lib/sugar-high/path.rb,
lib/sugar-high/blank.rb,
lib/sugar-high/regexp.rb,
lib/sugar-high/string.rb,
lib/sugar-high/arguments.rb
Class Method Summary collapse
Instance Method Summary collapse
-
#alpha_numeric ⇒ Object
remove prefixed ‘-’ signs, then allow any letter, number, underscore ‘_’ or dash ‘-’.
- #args ⇒ Object
- #as_filename ⇒ Object
- #blank? ⇒ Boolean
- #concats(*args) ⇒ Object
- #dir ⇒ Object
- #file ⇒ Object
- #insert_before_last(str, marker = 'end') ⇒ Object
- #new_file ⇒ Object
- #path ⇒ Object
- #to_regexp ⇒ Object
- #trim ⇒ Object
- #valid_file_command? ⇒ Boolean
Class Method Details
.letters(type = :lower) ⇒ Object
8 9 10 11 |
# File 'lib/sugar-high/string.rb', line 8 def self.letters type = :lower letters = ('a'..'z').to_a type == :upper ? letters.map!(&:upcase) : letters end |
.random_letters(count, type = :lower) ⇒ Object
4 5 6 |
# File 'lib/sugar-high/string.rb', line 4 def self.random_letters count, type = :lower letters(type).pick(count) end |
Instance Method Details
#alpha_numeric ⇒ Object
remove prefixed ‘-’ signs, then allow any letter, number, underscore ‘_’ or dash ‘-’
26 27 28 |
# File 'lib/sugar-high/string.rb', line 26 def alpha_numeric self.gsub(/^\-+/, '').gsub(/[^0-9a-zA-Z_\-]+/i, '') end |
#args ⇒ Object
33 34 35 |
# File 'lib/sugar-high/arguments.rb', line 33 def args (self =~ /\w+\s+\w+/) ? self.split : self end |
#as_filename ⇒ Object
40 41 42 |
# File 'lib/sugar-high/file.rb', line 40 def as_filename self.underscore end |
#concats(*args) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/sugar-high/string.rb', line 18 def concats *args args.inject(self) do |res, arg| res << arg.to_s res end end |
#dir ⇒ Object
53 54 55 56 |
# File 'lib/sugar-high/file.rb', line 53 def dir return ::Dir.new(self) if ::File.directory?(self) raise "No file found at #{self}" end |
#file ⇒ Object
48 49 50 51 |
# File 'lib/sugar-high/file.rb', line 48 def file return ::File.new(self) if ::File.file?(self) raise "No file found at #{self}" end |
#insert_before_last(str, marker = 'end') ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/sugar-high/string.rb', line 30 def insert_before_last str, marker = 'end' res = [] found = false marker = case marker when Symbol, String marker.to_s when Hash marker[:marker].to_s else raise ArgumentException, "last argument is the marker and must be a String, Symbol or even Hash with a :marker option pointing to the marker (String or Symbol)" end marker = Regexp.escape(marker.to_s.reverse) nl = Regexp.escape("\n") self.reverse.each_line do |x| x.gsub! /#{nl}/, '' if !found && x =~ /#{marker}/ replace = "#{str}\n" << x.reverse res << replace found = true else res << x.reverse end end res = res.reverse.join("\n") end |
#new_file ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/sugar-high/file.rb', line 58 def new_file begin file rescue File.open(self, 'w') end end |
#path ⇒ Object
2 3 4 |
# File 'lib/sugar-high/path.rb', line 2 def path self.extend PathString end |
#to_regexp ⇒ Object
2 3 4 |
# File 'lib/sugar-high/regexp.rb', line 2 def to_regexp /#{Regexp.escape(self)}/ end |
#trim ⇒ Object
13 14 15 |
# File 'lib/sugar-high/string.rb', line 13 def trim self.strip end |
#valid_file_command? ⇒ Boolean
44 45 46 |
# File 'lib/sugar-high/file.rb', line 44 def valid_file_command? self.to_sym.valid_file_command? end |