Sha256: 9db4dc0985170077a07532361b4a40fb2300b036b7096724a6126c0602d66783

Contents?: true

Size: 1.09 KB

Versions: 15

Compression:

Stored size: 1.09 KB

Contents

# encoding: UTF-8


module Spontaneous
  module Extensions
    module String
      def /(path)
        File.join(self, path.to_s)
      end

      def or(alternative)
        return alternative if empty?
        self
      end

      alias_method :'|', :or

      def value(format = :html)
        self
      end

      HTML_ESCAPE_TABLE = {
        '&' => '&',
        '<' => '&lt;',
        '>' => '&gt;',
        '"' => '&quot;',
        "'" => '&#039;',
      }

      def escape_html
        self.gsub(%r{[#{HTML_ESCAPE_TABLE.keys.join}]}) { |s| HTML_ESCAPE_TABLE[s] }
      end

      JS_ESCAPE_MAP = {
        '\\' => '\\\\',
        '</' => '<\/',
        "\r\n" => '\n',
        "\n" => '\n',
        "\r" => '\n',
        '"' => '\\"',
        "'" => "\\'"
      } unless defined?(JS_ESCAPE_MAP)

      def escape_js
        self.gsub(/(\\|<\/|\r\n|[\n\r"'])/) { JS_ESCAPE_MAP[$1] }
      end

      # Makes it easier to pass either a field or a String around
      # in templates
      def to_html
        self
      end
    end
  end
end


class String
  include Spontaneous::Extensions::String
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta10 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta9 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta8 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta7 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta6 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta5 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta4 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta3 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta2 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.beta1 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.alpha7 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.alpha6 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.alpha5 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.alpha4 lib/spontaneous/extensions/string.rb
spontaneous-0.2.0.alpha3 lib/spontaneous/extensions/string.rb