chawk 0.1.13 → 0.1.14
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/chawk.gemspec +2 -0
- data/lib/addr.rb +0 -1
- data/lib/chawk.rb +13 -0
- data/lib/chawk/version.rb +1 -1
- data/lib/store.rb +29 -11
- data/test/lib/paddr_test.rb +20 -2
- metadata +26 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 07b68b72e9e6307500b9c964ccbf25761159cb01
|
4
|
+
data.tar.gz: 02061cf62e12d325848cc585a3ce674f4578355e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 983b276e02e0fe72ad6ff06b16416dfcf5a9d2d5f6dbba8434718b9c980e660e53cac8b5135a8cd5e3111c954969e8dd07510f00bd338e9f0fb152c2cc5ac466
|
7
|
+
data.tar.gz: 9658138baf8ac3f6c21c51512d19b22ff2519ef57fd55eb5b05f7bf2a1c1fe48ae60410425615d6fb20a504d8b51f773cc46caff365885c21a4ccd2891234f54
|
data/chawk.gemspec
CHANGED
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
+
#spec.add_runtime_dependency "dm-postgres-adapter","1.2.0"
|
21
22
|
spec.add_runtime_dependency "data_mapper", "1.2.0"
|
22
23
|
|
23
24
|
spec.add_development_dependency "bundler", "~> 1.5"
|
@@ -26,5 +27,6 @@ Gem::Specification.new do |spec|
|
|
26
27
|
spec.add_development_dependency('rack-test', "0.6.2")
|
27
28
|
spec.add_development_dependency('json', "1.8.1")
|
28
29
|
spec.add_development_dependency('simplecov')
|
30
|
+
spec.add_development_dependency "dm-sqlite-adapter", "1.2.0"
|
29
31
|
|
30
32
|
end
|
data/lib/addr.rb
CHANGED
data/lib/chawk.rb
CHANGED
@@ -32,6 +32,19 @@ module Chawk
|
|
32
32
|
|
33
33
|
end
|
34
34
|
|
35
|
+
# @param agent [Chawk::Agent] the agent whose permission will be used for this request
|
36
|
+
# @param data [Hash] the bulk data to be inserted
|
37
|
+
# Insert data for multiple addresses at once. Format should be a hash of valid data sets keyed by address
|
38
|
+
# example: {'key1'=>[1,2,3,4,5],'key2'=>[6,7,8,9]}
|
39
|
+
def self.bulk_add_points(agent, data)
|
40
|
+
data.keys.each do |key|
|
41
|
+
dset = data[key]
|
42
|
+
daddr = addr(agent,key)
|
43
|
+
daddr.points << dset
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
35
48
|
# Deletes all data in the database. Very dangerous. Backup often!
|
36
49
|
def self.clear_all_data!
|
37
50
|
if @@ready.nil?
|
data/lib/chawk/version.rb
CHANGED
data/lib/store.rb
CHANGED
@@ -33,25 +33,43 @@ module Chawk
|
|
33
33
|
coll.length
|
34
34
|
end
|
35
35
|
|
36
|
+
def insert_recognizer(item, dt, options={})
|
37
|
+
case
|
38
|
+
|
39
|
+
when item.is_a?(stored_type)
|
40
|
+
_insert item,dt, options
|
41
|
+
when item.is_a?(Array)
|
42
|
+
if item.length == 2 && item[0].is_a?(stored_type) #value, timestamp
|
43
|
+
_insert item[0],item[1], options
|
44
|
+
else
|
45
|
+
raise ArgumentError, "Array Items must be in [value,timestamp] format. #{item.inspect}"
|
46
|
+
end
|
47
|
+
when item.is_a?(Hash)
|
48
|
+
if item['v'] && item['v'].is_a?(stored_type)
|
49
|
+
if item['t']
|
50
|
+
_insert item['v'],item['t'], options
|
51
|
+
else
|
52
|
+
_insert item['v'],dt, options
|
53
|
+
end
|
54
|
+
else
|
55
|
+
raise ArgumentError, "Hash must have 'v' key set to proper type.. #{item.inspect}"
|
56
|
+
end
|
57
|
+
else
|
58
|
+
raise ArgumentError, "Can't recognize format of data item. #{item.inspect}"
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
36
62
|
# @param args [Object, Array of Objects]
|
37
63
|
# @param options [Hash] You can also pass in :meta and :timestamp
|
38
64
|
# Add an item or an array of items (one at a time) to the datastore.
|
39
65
|
def <<(args,options={})
|
40
|
-
dt = Time.now
|
66
|
+
options[:observed_at] ? dt = options[:observed_at] : dt = Time.now
|
41
67
|
if args.is_a?(Array)
|
42
68
|
args.each do |arg|
|
43
|
-
|
44
|
-
self._insert(arg,dt,options)
|
45
|
-
else
|
46
|
-
raise ArgumentError
|
47
|
-
end
|
69
|
+
insert_recognizer(arg, dt, options)
|
48
70
|
end
|
49
71
|
else
|
50
|
-
|
51
|
-
_insert(args,dt,options)
|
52
|
-
else
|
53
|
-
raise ArgumentError
|
54
|
-
end
|
72
|
+
insert_recognizer(args, dt, options)
|
55
73
|
end
|
56
74
|
self.last
|
57
75
|
end
|
data/test/lib/paddr_test.rb
CHANGED
@@ -50,7 +50,12 @@ describe Chawk::Paddr do
|
|
50
50
|
@addr.points.length.must_equal(2)
|
51
51
|
@addr.points << 190
|
52
52
|
@addr.points << 10002
|
53
|
-
|
53
|
+
@addr.points << [10,0,190,100]
|
54
|
+
dt = Time.now.to_f
|
55
|
+
@addr.points << [[10,dt],[0,dt],[190,dt],[100,dt]]
|
56
|
+
@addr.points << [{"v"=>10},{"v"=>0},{"v"=>190},{"v"=>100,"t"=>dt}]
|
57
|
+
@addr.points << [{"v"=>10,"t"=>dt},{"v"=>0,"t"=>dt},{"v"=>190,"t"=>dt},{"v"=>100,"t"=>dt}]
|
58
|
+
@addr.points << [{"t"=>dt,"v"=>10},{"v"=>0,"t"=>dt},{"t"=>dt,"v"=>190},{"v"=>100,"t"=>dt}]
|
54
59
|
end
|
55
60
|
|
56
61
|
it "does +" do
|
@@ -85,12 +90,25 @@ describe Chawk::Paddr do
|
|
85
90
|
lambda {@addr.points - nil}.must_raise(ArgumentError)
|
86
91
|
end
|
87
92
|
|
88
|
-
it "only accepts integers" do
|
93
|
+
it "only accepts integers in proper formats" do
|
89
94
|
lambda {@addr.points << 10.0}.must_raise(ArgumentError)
|
90
95
|
lambda {@addr.points << nil}.must_raise(ArgumentError)
|
91
96
|
lambda {@addr.points << [10.0,:x]}.must_raise(ArgumentError)
|
97
|
+
lambda {@addr.points << [[10,10,10],[10,10,20]]}.must_raise(ArgumentError)
|
98
|
+
dt = Time.now.to_f
|
99
|
+
lambda {@addr.points << [{"x"=>10,"t"=>dt},{"x"=>0,"t"=>dt}]}.must_raise(ArgumentError)
|
92
100
|
end
|
93
101
|
|
102
|
+
it "does bulk add points" do
|
103
|
+
dt = Time.now.to_f
|
104
|
+
Chawk.bulk_add_points(@agent, {"xxx"=>[1,2,3,4,5,6], "yyy"=>[[10,dt],[10,dt]], "zzz"=>[{"t"=>dt,"v"=>10},{"v"=>0,"t"=>dt}]})
|
105
|
+
|
106
|
+
Chawk.addr(@agent,"xxx").points.length.must_equal 6
|
107
|
+
Chawk.addr(@agent,"zzz").points.length.must_equal 2
|
108
|
+
Chawk.addr(@agent,"zzz").points.last.value.must_equal 0
|
109
|
+
|
110
|
+
end
|
111
|
+
|
94
112
|
it "has last()" do
|
95
113
|
@addr.points.must_respond_to(:last)
|
96
114
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chawk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Scott Russell
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: data_mapper
|
@@ -28,28 +28,28 @@ dependencies:
|
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.5'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.5'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -98,16 +98,30 @@ dependencies:
|
|
98
98
|
name: simplecov
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: dm-sqlite-adapter
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.2.0
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - '='
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 1.2.0
|
111
125
|
description: A storage engine for time-series data. Eventually to include resampling,
|
112
126
|
statistical and aggregate data management.
|
113
127
|
email:
|
@@ -116,8 +130,8 @@ executables: []
|
|
116
130
|
extensions: []
|
117
131
|
extra_rdoc_files: []
|
118
132
|
files:
|
119
|
-
- .gitignore
|
120
|
-
- .travis.yml
|
133
|
+
- ".gitignore"
|
134
|
+
- ".travis.yml"
|
121
135
|
- Gemfile
|
122
136
|
- LICENSE.txt
|
123
137
|
- README.md
|
@@ -147,12 +161,12 @@ require_paths:
|
|
147
161
|
- lib
|
148
162
|
required_ruby_version: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
166
|
version: '0'
|
153
167
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
168
|
requirements:
|
155
|
-
- -
|
169
|
+
- - ">="
|
156
170
|
- !ruby/object:Gem::Version
|
157
171
|
version: '0'
|
158
172
|
requirements: []
|
@@ -167,4 +181,3 @@ test_files:
|
|
167
181
|
- test/lib/quantizer_test.rb
|
168
182
|
- test/lib/vaddr_test.rb
|
169
183
|
- test/test_helper.rb
|
170
|
-
has_rdoc:
|