Sha256: e5406e14762d454ac833fc4982b1e2be19511fb5fe19ebdde21290623003daeb
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
module Gecko module Pusher module Channel class Number < Base def push(*args) options = extract_options(args) data = {item: extract_values(args)} data[:type] = options[:type] unless options[:type].nil? data[:absolute] = options[:absolute] unless options[:absolute].nil? _push(data) end protected def extract_values(args) values = if just_values?(args) args.map {|arg| {value: arg}} elsif values_and_descriptions?(args) args.each_slice(2).map {|arg| {value: arg.first, text: arg.last} } end end def just_values?(args) (args.length == 1 || args.length == 2) && args.all? {|arg| arg.is_a?(Integer)} end def values_and_descriptions?(args) (args.length == 2 || args.length == 4) && args[0].is_a?(Integer) && args[1].is_a?(String) && args[2].is_a?(Integer) && args[3].is_a?(String) end def extract_options(args) args.last.is_a?(Hash) ? args.pop : {} end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
gecko-pusher-0.0.3 | lib/gecko-pusher/channel/number.rb |