haystack_ruby 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: 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