Sha256: 0cdc4e23b40c492969db0d72732b2c9e504a1c596e9aba2d66564fce5f343a0e

Contents?: true

Size: 1.88 KB

Versions: 97

Compression:

Stored size: 1.88 KB

Contents

module ActiveSupport #:nodoc:
  module CoreExtensions #:nodoc:
    module String #:nodoc:
      # Makes it easier to access parts of a string, such as specific characters and substrings.
      module Access
        # Returns the character at the +position+ treating the string as an array (where 0 is the first character).
        #
        # Examples: 
        #   "hello".at(0)  # => "h"
        #   "hello".at(4)  # => "o"
        #   "hello".at(10) # => nil
        def at(position)
          chars[position, 1].to_s
        end
        
        # Returns the remaining of the string from the +position+ treating the string as an array (where 0 is the first character).
        #
        # Examples: 
        #   "hello".from(0)  # => "hello"
        #   "hello".from(2)  # => "llo"
        #   "hello".from(10) # => nil
        def from(position)
          chars[position..-1].to_s
        end
        
        # Returns the beginning of the string up to the +position+ treating the string as an array (where 0 is the first character).
        #
        # Examples: 
        #   "hello".to(0)  # => "h"
        #   "hello".to(2)  # => "hel"
        #   "hello".to(10) # => "hello"
        def to(position)
          chars[0..position].to_s
        end

        # Returns the first character of the string or the first +limit+ characters.
        #
        # Examples: 
        #   "hello".first     # => "h"
        #   "hello".first(2)  # => "he"
        #   "hello".first(10) # => "hello"
        def first(limit = 1)
          chars[0..(limit - 1)].to_s
        end
        
        # Returns the last character of the string or the last +limit+ characters.
        #
        # Examples: 
        #   "hello".last     # => "o"
        #   "hello".last(2)  # => "lo"
        #   "hello".last(10) # => "hello"
        def last(limit = 1)
          (chars[(-limit)..-1] || self).to_s
        end
      end
    end
  end
end

Version data entries

97 entries across 97 versions & 7 rubygems

Version Path
jstorimer-deep-test-2.0.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-1.4.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-1.3.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-1.2.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-1.1.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-1.0.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-0.2.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
jstorimer-deep-test-0.1.0 sample_rails_project/vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
activesupport-1.4.4 lib/active_support/core_ext/string/access.rb
activesupport-1.4.0 lib/active_support/core_ext/string/access.rb
activesupport-1.4.3 lib/active_support/core_ext/string/access.rb
activesupport-2.0.1 lib/active_support/core_ext/string/access.rb
activesupport-1.4.2 lib/active_support/core_ext/string/access.rb
activesupport-1.4.1 lib/active_support/core_ext/string/access.rb
activesupport-2.0.0 lib/active_support/core_ext/string/access.rb
activesupport-2.0.2 lib/active_support/core_ext/string/access.rb
activesupport-2.0.4 lib/active_support/core_ext/string/access.rb
activesupport-2.0.5 lib/active_support/core_ext/string/access.rb
backlog-0.0.0 vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb
backlog-0.0.1 vendor/rails/activesupport/lib/active_support/core_ext/string/access.rb