chawk 0.1.16 → 0.2.0

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: 8e4af3f3f47d72453ac226d2f5645f8288c38843
4
- data.tar.gz: 4c5cdc1405311d4b03e67540f0fd55c1eb4997af
3
+ metadata.gz: 594fd4f014cdc8821cd8feef0648fb62c55ad867
4
+ data.tar.gz: 3fb8f4e6e0d0c5721abeb9f754da547f0a7b53be
5
5
  SHA512:
6
- metadata.gz: e276cefee3bc31f2bd0c3e1fd668a67336935abde8f17624f901d672e85fc03f22b61777bc9f4d166d1bcf6fcaeb451fe54702de8b166e0ffc722e78991cb696
7
- data.tar.gz: c373b9799df4768f20851298ce7a083cfe16174a24b73e29769b48920e034273ff91a5df75509ca6f941c20cd232be6bb079e1eb9652ed214646f6fea490499f
6
+ metadata.gz: d4861cad5119b155663c60c3c70acaa0063fb022a4153b74d547442ddf450fcee2d2f3ae0b9189bfeaa51cd7b917065d54282cdc51c8a2414ffcb97dbaebcbd4
7
+ data.tar.gz: acb26f7f49583c10175e4ec31fe95bbfa36f9f2234688fc49c2e460f8bd0ec559ae5aff60a53bdf20d2c174ce5c77d73cd5945124f5de2c7514d638fef64bfbe
data/CHANGES CHANGED
@@ -3,3 +3,7 @@
3
3
  Added "append" method and redirected << into it (Apparently, << is magic and won't take 2 parameters)
4
4
  -- 0.1.16 --
5
5
  Switched to ActiveRecord, removed DataMapper
6
+ -- 0.1.17 --
7
+ Points can now be passed as strings representing integers
8
+ -- 0.1.18 --
9
+ metadata is stored as json (must be passed as a hash)
@@ -1,31 +1,5 @@
1
1
  ## ~~~- Created via -~~~
2
2
 
3
- # ActiveRecord::Base.establish_connection ENV["TEST_DATABASE_URL"]
4
- # File.open(schema_file, "w") do |file|
5
- # ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
6
- # end
7
-
8
- # create_table "chawk_g_users", force: true do |t|
9
- # t.string "google_id", limit: 120
10
- # t.string "google_email", limit: 120
11
- # t.string "email", limit: 120
12
- # t.string "handle", limit: 30
13
- # t.string "name", limit: 40
14
- # t.string "family_name", limit: 20
15
- # t.text "image"
16
- # t.text "secret"
17
- # t.string "api_key", limit: 200
18
- # t.integer "reset_token"
19
- # t.integer "access_token"
20
- # t.integer "agent_id"
21
- # end
22
- # add_index "chawk_g_users", ["agent_id"], name: "index_chawk_g_users_agent", using: :btree
23
-
24
- #require 'active_record'
25
- #ActiveRecord::Base.logger = Logger.new(STDOUT)
26
- #ActiveRecord::Base.establish_connection ENV["TEST_DATABASE_URL"]
27
-
28
- ActiveRecord::Migration.verbose = false
29
3
  class CreateChawkBase < ActiveRecord::Migration
30
4
  def up
31
5
  create_table "chawk_agents", force: true do |t|
@@ -83,10 +57,3 @@ class CreateChawkBase < ActiveRecord::Migration
83
57
 
84
58
  end
85
59
 
86
- #CreateChawkBase.migrate :down
87
- CreateChawkBase.migrate :up
88
-
89
- File.open('./test/schema.rb', "w") do |file|
90
- ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
91
- end
92
-
@@ -1,4 +1,4 @@
1
1
  module Chawk
2
2
  # The current version of Chawk
3
- VERSION = "0.1.16"
3
+ VERSION = "0.2.0"
4
4
  end
@@ -34,7 +34,13 @@ module Chawk
34
34
 
35
35
  def _insert_point(val,ts,options={})
36
36
  values = {value:val,observed_at:ts.to_f}
37
- values[:meta] = options[:meta] if options[:meta]
37
+ if options[:meta]
38
+ if options[:meta].is_a?(Hash)
39
+ values[:meta] = options[:meta].to_json
40
+ else
41
+ raise ArgumentError, "Meta must be a JSON-representable Hash. #{options[:meta].inspect}"
42
+ end
43
+ end
38
44
  self.points.create(values)
39
45
  end
40
46
 
@@ -58,6 +64,14 @@ module Chawk
58
64
  end
59
65
  end
60
66
 
67
+ def _insert_point_string(item,ts,options)
68
+ if item.length > 0 && item =~ /\A[-+]?[0-9]+/
69
+ _insert_point item.to_i,ts, options
70
+ else
71
+ raise ArgumentError, "String Items must represent Integer. #{item.inspect}"
72
+ end
73
+ end
74
+
61
75
  def point_recognizer(item, dt, options={})
62
76
  case
63
77
  when item.is_a?(Integer)
@@ -66,6 +80,8 @@ module Chawk
66
80
  _insert_point_array(item, options)
67
81
  when item.is_a?(Hash)
68
82
  _insert_point_hash(item,dt,options)
83
+ when item.is_a?(String)
84
+ _insert_point_string(item,dt,options)
69
85
  else
70
86
  raise ArgumentError, "Can't recognize format of data item. #{item.inspect}"
71
87
  end
@@ -114,6 +114,18 @@ describe Chawk do
114
114
  lambda {@addr.add_points [{"x"=>10,"t"=>dt},{"x"=>0,"t"=>dt}]}.must_raise(ArgumentError)
115
115
  end
116
116
 
117
+ it "accepts string integers in proper formats" do
118
+ lambda {@addr.add_points "X"}.must_raise(ArgumentError)
119
+ @addr.add_points "10"
120
+ @addr.points.length.must_equal(1)
121
+ @addr.add_points "0"
122
+ @addr.points.length.must_equal(2)
123
+ @addr.add_points "190"
124
+ @addr.add_points "10002"
125
+ @addr.add_points ["10","0","190","100"]
126
+ @addr.points.length.must_equal(8)
127
+ end
128
+
117
129
  it "does bulk add points" do
118
130
  dt = Time.now.to_f
119
131
  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}]})
@@ -140,9 +152,17 @@ describe Chawk do
140
152
  end
141
153
 
142
154
  it "stores meta information" do
143
- @addr.add_points(10,{:meta=>"Some meta_information"})
144
- @addr.points.last.value.must_equal(10)
145
- @addr.points.last.meta.must_equal("Some meta_information")
155
+
156
+ metadata = {"info"=>"this is a test"}
157
+ @addr.add_points([1,2,3,4],{:meta=>metadata})
158
+ @addr.points.last.value.must_equal(4)
159
+ JSON.parse(@addr.points.last.meta).must_equal(metadata)
160
+
161
+ metadata = {"number"=>123}
162
+ @addr.add_points([1,2,3,4],{:meta=>metadata})
163
+ @addr.points.last.value.must_equal(4)
164
+ JSON.parse(@addr.points.last.meta).must_equal(metadata)
165
+
146
166
  end
147
167
 
148
168
 
@@ -27,7 +27,12 @@ if ENV["TEST_DATABASE_URLX"]
27
27
  ActiveRecord::Base.establish_connection ENV["TEST_DATABASE_URL"]
28
28
  else
29
29
  ActiveRecord::Base.establish_connection adapter: "sqlite3", database: ":memory:"
30
+ ActiveRecord::Migration.verbose = false
30
31
  require "chawk/migration"
32
+ CreateChawkBase.migrate :up
33
+ File.open('./test/schema.rb', "w") do |file|
34
+ ActiveRecord::SchemaDumper.dump(ActiveRecord::Base.connection, file)
35
+ end
31
36
  end
32
37
 
33
38
 
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.16
4
+ version: 0.2.0
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-21 00:00:00.000000000 Z
11
+ date: 2014-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord