Sha256: 21864f37ec9a1fb79e4ac4495f866255f2bfc00e4c72db72c731c16cc05b92cf

Contents?: true

Size: 486 Bytes

Versions: 7

Compression:

Stored size: 486 Bytes

Contents

module LinkShrink
  # @author Jonah Ruiz <jonah@pixelhipsters.com>
  # Inherits from Hash to add predicate methods
  class Options < Hash
    def initialize(*args)
      super(*args)
      self.merge!(self.default)
    end

    # Dynamically defines three predicate methods
    # @return [Trueclass] return true or false if no key found
    [:qr_code, :json, :image_size].map do |method|
      define_method "#{method}?" do
        self.fetch(method, false)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
link_shrink-0.0.8 lib/link_shrink/options.rb
link_shrink-0.0.7 lib/link_shrink/options.rb
link_shrink-0.0.6 lib/link_shrink/options.rb
link_shrink-0.0.5 lib/link_shrink/options.rb
link_shrink-0.0.4 lib/link_shrink/options.rb
link_shrink-0.0.3 lib/link_shrink/options.rb
link_shrink-0.0.2 lib/link_shrink/options.rb