haystack_ruby 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1bbe8505587fa1e720665305767e15d16a78a11b
4
- data.tar.gz: 8ddbb550be5df6a595b1dd3740f6405c3acf9685
3
+ metadata.gz: b6c6b9cdc1447c63ec9e4389027df52d9895c659
4
+ data.tar.gz: 5f49ee6b99c204c65b3b8553c1e71b802e61fc32
5
5
  SHA512:
6
- metadata.gz: 93f07240acd1a2a50c41b2a9e27789c1b8d1cff16e4a2825d9f4577e7b345cedbe7581fe8b5370dffacb4e5885b6a9f30f7e8d371ade56017788a117a6f3b6c2
7
- data.tar.gz: bc73973de118ee8a52e9dab9efc59ba9486b048d6bba07d9656c277e19a9610dbaaad5527362f14008b1e9e49c7fcffd471604fc0e4d9923d693821d360c3236
6
+ metadata.gz: 8b476a3f16801e3b26f1db1f88694edafe3c53d5e4674523500031f621e3235f6b73033db3d6f79888cec58696cc0809d54c4b7701d2c29bf826c97a19784907
7
+ data.tar.gz: 43faa8a880a29efc9ef66f526668c58cc9bbff9351a73abbee82e5adfcd2ff0218da6a75853997963faf4eb5ad85af8f4c0d61294d3c293c150a790e99c5d93f
@@ -35,27 +35,27 @@ module HaystackRuby
35
35
  # Map to Haystack type per http://project-haystack.org/doc/Json
36
36
  case val
37
37
  when /\Am:.*/
38
- include HaystackRuby::Types::Marker
38
+ extend HaystackRuby::Types::Marker
39
39
  when /\Az:.*/
40
- include HaystackRuby::Types::NA
40
+ extend HaystackRuby::Types::NA
41
41
  when /\An:.*/
42
42
  extend HaystackRuby::Types::Number
43
43
  when /\Ar:.*/
44
- include HaystackRuby::Types::Ref
44
+ extend HaystackRuby::Types::Ref
45
45
  when /\As:.*/
46
- include HaystackRuby::Types::Str
46
+ extend HaystackRuby::Types::Str
47
47
  when /\Ad:.*/
48
- include HaystackRuby::Types::Date
48
+ extend HaystackRuby::Types::Date
49
49
  when /\Ah:.*/
50
- include HaystackRuby::Types::Time
50
+ extend HaystackRuby::Types::Time
51
51
  when /\At:.*/
52
- include HaystackRuby::Types::DateTime
52
+ extend HaystackRuby::Types::DateTime
53
53
  when /\Au:.*/
54
- include HaystackRuby::Types::Uri
54
+ extend HaystackRuby::Types::Uri
55
55
  when /\Ab:.*/
56
- include HaystackRuby::Types::Bin
56
+ extend HaystackRuby::Types::Bin
57
57
  when /\Ac:.*/
58
- include HaystackRuby::Types::Coord
58
+ extend HaystackRuby::Types::Coord
59
59
  when /\Ax:.*/
60
60
  raise HaystackRuby::Error, "parsing of XStr type is not supported for string val #{val}"
61
61
  else
@@ -67,4 +67,4 @@ module HaystackRuby
67
67
  set_fields val
68
68
  end
69
69
  end
70
- end
70
+ end
@@ -2,8 +2,8 @@ require 'date'
2
2
  # require 'active_support'
3
3
  module HaystackRuby
4
4
  module Point
5
-
6
- # is this Point valid for purposees of Project Haystack Integration?
5
+
6
+ # is this Point valid for purposees of Project Haystack Integration?
7
7
  def haystack_valid?
8
8
  return self.haystack_project_name.present? && self.haystack_point_id.present? && self.haystack_time_zone.present?
9
9
  end
@@ -33,7 +33,7 @@ module HaystackRuby
33
33
 
34
34
  # data is ascending array of hashes with format: {time: epochtime, value: myvalue}
35
35
  def his_write(data)
36
- query =
36
+ query =
37
37
  ["ver:\"#{haystack_project.haystack_version}\" id:@#{self.haystack_point_id}",'ts,val'] + data.map{ |d| "#{d[:time]},#{d[:value]}"}
38
38
 
39
39
  res = connection.post('hisWrite') do |req|
@@ -44,7 +44,7 @@ module HaystackRuby
44
44
  JSON.parse(res.body)['meta']['ok'].present?
45
45
  end
46
46
 
47
- def data(start, finish = nil, as_datetime = false) # as_datetime currently ignored
47
+ def data(start, finish = nil, as_datetime = false, include_unit = false) # as_datetime currently ignored
48
48
  return unless haystack_valid? #may choose to throw exception instead
49
49
 
50
50
  range = [start]
@@ -52,15 +52,16 @@ module HaystackRuby
52
52
  # clean up the range argument before passing through to hisRead
53
53
  # ----------------
54
54
  r = HaystackRuby::Range.new(range, self.haystack_time_zone)
55
-
55
+
56
56
  res = his_read r.to_s
57
- reformat_timeseries(res['rows'], as_datetime)
57
+ # puts "res in data : #{res}"
58
+ reformat_timeseries(res['rows'], as_datetime, include_unit)
58
59
  end
59
60
 
60
61
  def write_data(data)
61
62
  # format data for his_write
62
- data = data.map do |d|
63
- {
63
+ data = data.map do |d|
64
+ {
64
65
  time: HaystackRuby::Timestamp.convert_to_string(d[:time], self.haystack_time_zone),
65
66
  value: d[:value]
66
67
  }
@@ -68,13 +69,15 @@ module HaystackRuby
68
69
  his_write data
69
70
  end
70
71
 
71
- # map from
72
- def reformat_timeseries data, as_datetime
72
+ # map from
73
+ def reformat_timeseries data, as_datetime = false, include_unit = false
73
74
  data.map do |d|
74
75
  time = (as_datetime) ? DateTime.parse(d['ts']) : DateTime.parse(d['ts']).to_i
75
76
  val = HaystackRuby::Object.new(d['val'])
76
- {:time => time, :value => val.value}
77
+ r = {:time => time, :value => val.value}
78
+ r[:unit] = val.unit if include_unit
79
+ r
77
80
  end
78
81
  end
79
82
  end
80
- end
83
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: haystack_ruby
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
  - Anya Petersen