Sha256: 713e3aa6e53e318f063e9543a496bdc3731715a45b01ee95aa7bd6aa9e000435
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
# frozen_string_literal: true class Hash def h Hashie::Mash.new(self) end def h_wia HashWithIndifferentAccess.new(self) end def tag node=nil, text=nil opts = '' self.each do |k,v| opts += ' '+k.to_s.gsub(/_/,'-')+'="'+v.to_s.gsub(/"/,'"')+'"' if v.present? end return opts unless node text = yield opts if block_given? text ||= '' unless ['input', 'img', 'meta', 'link', 'hr', 'br'].include?(node.to_s) text ? %{<#{node}#{opts}>#{text}</#{node}>} : %{<#{node}#{opts} />} end def to_struct name=nil name ||= ToStructGeneric Struct.new(name, *keys).new(*values) end def blank? self.keys.count == 0 end def to_query namespace=nil self.keys.sort.map { |k| name = namespace ? "#{namespace}[#{k}]" : k "#{name}=#{CGI::escape(self[k].to_s)}" }.join('&') end def pluck *args string_args = args.map(&:to_s) self.select{ |k,v| string_args.index(k.to_s) } end def transform_keys return enum_for(:transform_keys) unless block_given? result = self.class.new each_key do |key| result[yield(key)] = self[key] end result end def transform_keys! return enum_for(:transform_keys!) unless block_given? keys.each do |key| self[yield(key)] = delete(key) end self end def symbolize_keys transform_keys{ |key| key.to_sym rescue key } end def symbolize_keys! transform_keys!{ |key| key.to_sym rescue key } end def slice *keys keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true) keys.each_with_object(self.class.new) { |k, hash| hash[k] = self[k] if has_key?(k) } end def slice! *keys keys.map! { |key| convert_key(key) } if respond_to?(:convert_key, true) omit = slice(*self.keys - keys) hash = slice(*keys) hash.default = default hash.default_proc = default_proc if default_proc replace(hash) omit end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lux-fw-0.1.17 | ./lib/overload/hash.rb |