Sha256: f5826f43a5acc7ae87ac1e6433c0a5984fe2880e275cb2add25e6a3ca16decc1

Contents?: true

Size: 924 Bytes

Versions: 2

Compression:

Stored size: 924 Bytes

Contents

# -*- coding: utf-8 -*-
module Subduino
  module Parse

    def self.work(klass, v, name=nil, id=nil)
      const_get(klass).new(v, name, id)
    end

    class DigParser
      def initialize(v,n=nil,id=nil)
        @v = v.to_i
        @id = id
        @name = n
      end
      def digital?; true;   end
      def to_s; @v.to_s; end
      def name; @name; end
      def type
        self.class.to_s.split("::")[-1].downcase # ugly
      end
      def raw; @v; end

      def sparkline(range = [-50, -1])
        Store.redis.lrange "#{@id}_log", *range
      end

      def graph(period)
        Store.redis
      end


    end

    class AnaParser < DigParser
      def digital?; false;   end
      def parse; @v;    end
      def ratio
        return 0 if @v.zero?
        @v * 100 / 1023
      end
    end

    class Knob < AnaParser
    end


  end
end

Dir[File.dirname(__FILE__) + "/parse/*.rb"].each { |f| require f}

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
subduino-0.2.1 lib/subduino/parse.rb
subduino-0.2.0 lib/subduino/parse.rb