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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ef42d3ddfdf0a33387d05572ec03ba67d056524d
4
- data.tar.gz: 9355d8de144d2087a3bc3d776abf927916da95f9
3
+ metadata.gz: 203d6e22261ef64318d89d717d5a1feed7ba67ac
4
+ data.tar.gz: 5d799c7ef0e210887b60bdceb23168eb2f3b877d
5
5
  SHA512:
6
- metadata.gz: d64a5a2c05172dbe8454c1ce8327978af040e8659430d6b3d3943fe7cd059b5951acb3842a5bfe0c7c2ef8f5212fef5a70d4f99a3b2e124761969e2d20163669
7
- data.tar.gz: 2f0a056a93d52b433582e0efcbbec3037eaf02f3e1ce3640c9518b56252bf906dc8b02e5ea6f4b9f9a9436f286d20bc4f67e987371795388177a31d6744808e5
6
+ metadata.gz: 3094043fe1694aba80b0d3fdc4629843930fd28a7f3e4cf72e41c6b7b0ab205cbd7851d2edbf865266896064997e063626413dba6d678115bf79661a7ac188fe
7
+ data.tar.gz: e4cd31728d71694db2ddeb6ae3b9489de34f061ab9a6c00689d6ec3a3574fe9d033817fa9fb22f4f4d03f6058139e33e3ca5d63bfb8da6d117565a56fe26ad1c
Binary file
@@ -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 self.version
4
- '0.0.1'
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.1
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: 2010-03-13 00:00:00.000000000 Z
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: