File: database.rb

package info (click to toggle)
ruby-influxdb 0.8.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 424 kB
  • sloc: ruby: 3,530; sh: 61; makefile: 7
file content (33 lines) | stat: -rw-r--r-- 951 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
module InfluxDB
  module Query
    module Database # :nodoc:
      def create_database(name = nil)
        execute("CREATE DATABASE \"#{name || config.database}\"")
      end

      def delete_database(name = nil)
        execute("DROP DATABASE \"#{name || config.database}\"")
      end

      def list_databases
        resp = execute("SHOW DATABASES".freeze, parse: true)
        fetch_series(resp)
          .fetch(0, {})
          .fetch("values".freeze, [])
          .flatten
          .map { |v| { "name".freeze => v } }
      end

      def show_field_keys
        query("SHOW FIELD KEYS".freeze, precision: nil).each_with_object({}) do |collection, keys|
          name    = collection.fetch("name")
          values  = collection.fetch("values", [])

          keys[name] = values.each_with_object({}) do |row, types|
            types[row.fetch("fieldKey")] = [row.fetch("fieldType")]
          end
        end
      end
    end
  end
end