Sha256: 5fd565617b594590201ad203411ad105727390a42c97a356eb014f463174fff6

Contents?: true

Size: 1017 Bytes

Versions: 1

Compression:

Stored size: 1017 Bytes

Contents

# This is for adding specific methods that are required by sinatra_more if activesupport isn't required

unless String.method_defined?(:titleize)
  require 'active_support/inflector'
end

unless Hash.method_defined?(:reverse_merge!)
  module HashExtensions
    def reverse_merge(other_hash)
      other_hash.merge(self)
    end
    def reverse_merge!(other_hash)
      replace(reverse_merge(other_hash))
    end
  end
end

unless Hash.method_defined?(:symbolize_keys!)
  module HashExtensions
    def symbolize_keys
      inject({}) do |options, (key, value)|
        options[(key.to_sym rescue key) || key] = value
        options
      end
    end
    def symbolize_keys!
      self.replace(self.symbolize_keys)
    end
  end
end

unless Array.method_defined?(:extract_options!)
  module ArrayExtensions
    def extract_options!
      last.is_a?(::Hash) ? pop : {}
    end
  end
end

Hash.send(:include, HashExtensions) if defined?(HashExtensions)
Array.send(:include, ArrayExtensions) if defined?(ArrayExtensions)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sinatra_more-0.2.0 lib/sinatra_more/support_lite.rb