Sha256: 996336f71cf1d4d50f167d8c2455fe8c542dd5026f1d2213bd3f20ced5d2ef4f

Contents?: true

Size: 851 Bytes

Versions: 8

Compression:

Stored size: 851 Bytes

Contents

#!/usr/bin/env ruby

module Visage
  class Types
    attr_reader :types

    def initialize(opts={})
      @filename = opts[:filename] || "/usr/share/collectd/types.db"
      @types    = []
      build
    end

    def to_json
      @types.to_json
    end

    private
    def build
      file = File.new(@filename)
      file.each_line do |line|
        next if line =~ /^#/
        next if line =~ /^\s*$/
        attrs   = {}
        spec    = line.strip.split(/\t+|,\s+/)
        dataset = spec.shift
        spec.each do |source|
          parts = source.split(':')
          @types << { "dataset"    => dataset,
                      "datasource" => parts[0],
                      "type"       => parts[1],
                      "min"        => parts[2],
                      "max"        => parts[3] }
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
visage-app-2.1.0 lib/visage-app/types.rb
visage-app-2.0.5 lib/visage-app/types.rb
visage-app-2.0.4 lib/visage-app/types.rb
visage-app-2.0.2 lib/visage-app/types.rb
visage-app-2.0.0 lib/visage-app/types.rb
visage-app-1.0.0 lib/visage-app/types.rb
visage-app-0.9.6 lib/visage-app/types.rb
visage-app-0.9.5 lib/visage-app/types.rb