jsqlite_metric 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/jars/sqlite-jdbc-3.8.11.2.jar +0 -0
- data/lib/jsqlite_metric.rb +47 -2
- metadata +32 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 203d6e22261ef64318d89d717d5a1feed7ba67ac
|
4
|
+
data.tar.gz: 5d799c7ef0e210887b60bdceb23168eb2f3b877d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3094043fe1694aba80b0d3fdc4629843930fd28a7f3e4cf72e41c6b7b0ab205cbd7851d2edbf865266896064997e063626413dba6d678115bf79661a7ac188fe
|
7
|
+
data.tar.gz: e4cd31728d71694db2ddeb6ae3b9489de34f061ab9a6c00689d6ec3a3574fe9d033817fa9fb22f4f4d03f6058139e33e3ca5d63bfb8da6d117565a56fe26ad1c
|
Binary file
|
data/lib/jsqlite_metric.rb
CHANGED
@@ -1,7 +1,52 @@
|
|
1
|
+
require 'java'
|
2
|
+
require "#{File.join(File.dirname(__FILE__), 'jars')}/sqlite-jdbc-3.8.11.2.jar"
|
3
|
+
|
4
|
+
java_import 'java.sql.Connection'
|
5
|
+
java_import 'java.sql.DriverManager'
|
6
|
+
|
1
7
|
class JsqliteMetric
|
8
|
+
@@basedir = '/tmp'
|
9
|
+
attr_reader :name
|
10
|
+
attr_reader :filename
|
11
|
+
attr_reader :connection
|
12
|
+
|
13
|
+
def initialize(name, storage='file')
|
14
|
+
@name = name
|
15
|
+
@filename = "#{safe_for_fs(name)}.db"
|
16
|
+
@storage = storage
|
17
|
+
connect && prepare_db
|
18
|
+
end
|
19
|
+
|
20
|
+
def connect
|
21
|
+
conn_string = if @storage.to_s == 'memory'
|
22
|
+
conn_string = "jdbc:sqlite::memory:"
|
23
|
+
else
|
24
|
+
conn_string = "jdbc:sqlite:#{@@basedir}/#{@filename}"
|
25
|
+
end
|
26
|
+
@connection = DriverManager.get_connection conn_string
|
27
|
+
end
|
2
28
|
|
3
|
-
def
|
4
|
-
'
|
29
|
+
def prepare_db
|
30
|
+
write 'CREATE TABLE IF NOT EXISTS data (at DATETIME, val NUMERIC);'
|
31
|
+
write 'CREATE INDEX IF NOT EXISTS data_at_idx ON data (at);'
|
5
32
|
end
|
6
33
|
|
34
|
+
def add_point(at, value)
|
35
|
+
write "INSERT INTO data VALUES ('#{at.to_s}', '#{value}');"
|
36
|
+
end
|
37
|
+
|
38
|
+
def close
|
39
|
+
@connection.close
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def safe_for_fs(name)
|
45
|
+
name.strip.gsub(/[^0-9A-Za-z.\-_]/, '_')
|
46
|
+
end
|
47
|
+
|
48
|
+
def write(sql)
|
49
|
+
st = @connection.create_statement
|
50
|
+
st.execute_update sql
|
51
|
+
end
|
7
52
|
end
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jsqlite_metric
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Nacos
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2016-03-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
15
|
+
requirements:
|
16
|
+
- - "~>"
|
17
|
+
- !ruby/object:Gem::Version
|
18
|
+
version: '3.4'
|
19
|
+
name: rspec
|
20
|
+
prerelease: false
|
21
|
+
type: :development
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.4'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirements:
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '10.5'
|
33
|
+
name: rake
|
34
|
+
prerelease: false
|
35
|
+
type: :development
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.5'
|
13
41
|
description: |
|
14
42
|
Stores time series data in sqlite files, one file per metric.
|
15
43
|
Built for jruby 9k.
|
@@ -18,6 +46,7 @@ executables: []
|
|
18
46
|
extensions: []
|
19
47
|
extra_rdoc_files: []
|
20
48
|
files:
|
49
|
+
- lib/jars/sqlite-jdbc-3.8.11.2.jar
|
21
50
|
- lib/jsqlite_metric.rb
|
22
51
|
homepage: http://rubygems.org/gems/jsqlite_metric
|
23
52
|
licenses:
|