Sha256: 3d40138ce2d9b8d4d6204c23d07237e8065415293e59882c4104f7b5796e7e32
Contents?: true
Size: 967 Bytes
Versions: 2
Compression:
Stored size: 967 Bytes
Contents
# encoding: utf-8 require 'ostruct' module Flextures # OpenStruct hack in flextures Plug-in class OpenStruct < ::OpenStruct # Struct Data translate to Hash def to_hash (self.methods - ::OpenStruct.new.methods) .select{ |name| name.to_s.match(/\w+=/) } .map{ |name| name.to_s.gsub(/=/,'').to_sym } .inject({}){ |k,h| h[k]=self.send(k); h } end end module Extensions module Array # use Object#extend # @params [Array] keys hash keys # @return [Hash] tanslated Hash data # example: # hash = array.extend(Extensions::Array).to_hash(keys) def to_hash keys values = self values = values[0..keys.size-1] if keys.size < values.size values = values+[nil]*(keys.size-values.size) if keys.size > values.size [keys,values].transpose.inject({}){ |h,pair| k,v=pair; h[k]=v; h } end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
flextures-3.0.1 | lib/flextures/flextures_extension_modules.rb |
flextures-3.0.0 | lib/flextures/flextures_extension_modules.rb |