Sha256: 87a28037a865d5b6ed4697794591fb815cd1f6e5c3cffe5cc491d7f238ef04fc
Contents?: true
Size: 1.12 KB
Versions: 4
Compression:
Stored size: 1.12 KB
Contents
# The hash_aliases extension allows Dataset#select and Dataset#from # to treat a hash argument as an alias specification, with keys # being the expressions and values being the aliases, # which was the historical behavior before Sequel 4. # It is only recommended to use this for backwards compatibility. # # You can load this extension into specific datasets: # # ds = DB[:table] # ds.extension(:hash_aliases) # # Or you can load it into all of a database's datasets, which # is probably the desired behavior if you are using this extension: # # DB.extension(:hash_aliases) module Sequel module HashAliases def from(*source) super(*convert_hash_aliases(source)) end def select(*columns, &block) virtual_row_columns(columns, block) super(*convert_hash_aliases(columns), &nil) end private def convert_hash_aliases(columns) m = [] columns.each do |i| if i.is_a?(Hash) m.concat(i.map{|k, v| SQL::AliasedExpression.new(k,v)}) else m << i end end m end end Dataset.register_extension(:hash_aliases, HashAliases) end
Version data entries
4 entries across 4 versions & 1 rubygems