Sha256: 19fc33c252a83956387863cb3476f283ad9027474223b42dd548ebad656adc64

Contents?: true

Size: 918 Bytes

Versions: 3

Compression:

Stored size: 918 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 Digital
      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 Analogic < Digital
      def digital?; false;   end
      def parse; @v;    end
      def ratio
        return 0 if @v.zero?
        @v * 100 / 1023
      end
    end

    class Knob < Analogic
    end


  end
end

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
subduino-0.5.0 lib/subduino/parse.rb
subduino-0.3.1 lib/subduino/parse.rb
subduino-0.2.2 lib/subduino/parse.rb