cs 0.1.0 → 0.1.1beta

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: c9c07ce0761efba489c25ac1286348c278d43024
4
- data.tar.gz: a200d01e595e45f19d4188a68b3089ab864222f0
3
+ metadata.gz: da893437e3bafdedfc45e0ee607d2bf923faa73c
4
+ data.tar.gz: 4c63a68ad28063ce2a61968ec71da47c7e41fb94
5
5
  SHA512:
6
- metadata.gz: ee82e700560960c985a55829cba9987952b619b20395435d111948695f36550e9c3f4d5ea6d2bc1a4ae784c78dacdba6c3fb710c4268affcc80782e364b2fcce
7
- data.tar.gz: 32cbaac901131587917bc9a9ada98678399cab0d34bec5ba83cd50daee54f13c08377c7879b82ffb7a39bd659dea8b2861b19424bb4fcfdc8d0dd63a25d9e7a5
6
+ metadata.gz: 2ab95c33150cc511f53a057280e83fe35eafcdd61b48acab6ef6bce312511af17c295945e06412b36c98446fc012c60df6aebd7e03017a8cc275e866461bdd36
7
+ data.tar.gz: 3973ad261722529b962970e5c956eb921045820cde9ccff0d268824024ffa3cddd487a9bca7faa56f1430320bbd93c8ac45453af135371aa70e1cead6debbd0a
data/.travis.yml CHANGED
@@ -2,7 +2,8 @@ language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
+ - 1.9.2
5
6
  - jruby-19mode
6
- - rbx-2.2.1
7
+ - rbx-19mode
7
8
  - jruby-head
8
9
  script: bundle exec rspec spec
data/Gemfile CHANGED
@@ -3,15 +3,7 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in cs.gemspec
4
4
  gemspec
5
5
  gem "time-lord"
6
- gem 'json'
7
-
8
- #
9
- # Rubinius does not load ruby stdlib by default
10
- #
11
-
12
- platforms :rbx do
13
- gem 'rubysl'
14
- end
6
+ gem 'json', '~> 1.7.7'
15
7
 
16
8
  group :test do
17
9
  gem "rake", "~> 10.1.0"
data/cs.gemspec CHANGED
@@ -8,8 +8,6 @@ Gem::Specification.new do |gem|
8
8
  gem.summary = %q{Client library to communicate with CommonSense written in ruby}
9
9
  gem.homepage = "https://github.com/senseobservationsystems/commonsense-ruby-lib"
10
10
 
11
- gem.required_ruby_version = '>= 1.9.3'
12
-
13
11
  gem.files = `git ls-files`.split($\)
14
12
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
13
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
@@ -17,6 +15,6 @@ Gem::Specification.new do |gem|
17
15
  gem.require_paths = ["lib"]
18
16
  gem.version = CS::VERSION
19
17
  gem.add_development_dependency("launchy", "~> 2.3")
20
- gem.add_dependency('httparty', '~> 0.12')
18
+ gem.add_dependency('httparty', '~> 0.11')
21
19
  gem.add_dependency('oauth', '~> 0.4')
22
20
  end
data/lib/cs.rb CHANGED
@@ -9,17 +9,12 @@ require "cs/end_point/user"
9
9
  require "cs/end_point/group"
10
10
  require "cs/end_point/sensor"
11
11
  require "cs/end_point/sensor_data"
12
- require "cs/end_point/trigger"
13
- require "cs/end_point/notification"
14
12
  require "cs/parameter_processor"
15
13
  require "cs/relation"
16
14
  require "cs/relation/sensor_relation"
17
15
  require "cs/relation/sensor_data_relation"
18
16
  require "cs/relation/user_relation"
19
17
  require "cs/relation/group_relation"
20
- require "cs/relation/trigger_relation"
21
- require "cs/relation/notification_relation"
22
- require "cs/collection/sensor_data_collection"
23
18
 
24
19
  module CS
25
20
 
@@ -70,10 +65,10 @@ module CS
70
65
  #
71
66
  # client = CS::Client.new
72
67
  # client.login!('username', 'password')
73
- def login!(user, password, digest=true)
68
+ def login!(user, password)
74
69
  @session = Session.new(base_uri: @base_uri)
75
70
  @session.logger = logger
76
- @session.login(user, password, digest)
71
+ @session.login(user, password)
77
72
  end
78
73
 
79
74
  # Create a new session to CommonSense using username and plain text password
@@ -81,8 +76,8 @@ module CS
81
76
  #
82
77
  # client = CS::Client.new
83
78
  # client.login('username', 'password')
84
- def login(user, password, digest=true)
85
- login!(user, password, digest) rescue false
79
+ def login(user, password)
80
+ login!(user, password) rescue false
86
81
  end
87
82
 
88
83
  # Create a new session to CommonSense using OAuth credentials
@@ -105,16 +100,6 @@ module CS
105
100
  @session.session_id = session_id
106
101
  end
107
102
 
108
- # Create new session by specifying api_key
109
- #
110
- # client = CS::Client.new
111
- # client.session_id = '12345'
112
- def api_key=(api_key)
113
- @session = Session.new(base_uri: @base_uri)
114
- @session.logger = logger
115
- @session.api_key = api_key
116
- end
117
-
118
103
  # Retrun logged in user
119
104
  def current_user
120
105
  user = EndPoint::User.new
@@ -148,14 +133,6 @@ module CS
148
133
  Relation::GroupRelation.new(@session)
149
134
  end
150
135
 
151
- def triggers
152
- Relation::TriggerRelation.new(@session)
153
- end
154
-
155
- def notifications
156
- Relation::NotificationRelation.new(@session)
157
- end
158
-
159
136
  def current_groups
160
137
  group = EndPoint::Group.new
161
138
  group.session = @session
@@ -168,9 +145,5 @@ module CS
168
145
  return @session.errors if @session
169
146
  end
170
147
  end
171
-
172
- def self.load_CLI
173
- require "cs/cli/cli"
174
- end
175
148
  end
176
149
 
data/lib/cs/auth/http.rb CHANGED
@@ -7,11 +7,10 @@ module CS
7
7
  include HTTParty
8
8
 
9
9
  attr_accessor :response_body, :response_code, :response_headers, :errors
10
- attr_reader :session_id, :api_key
10
+ attr_reader :session_id
11
11
 
12
- def initialize(base_uri = nil, api_key = nil)
12
+ def initialize(base_uri = nil)
13
13
  self.base_uri = base_uri
14
- @api_key = api_key
15
14
  @session_id = nil
16
15
  reset
17
16
  end
@@ -23,23 +22,10 @@ module CS
23
22
  @response_body
24
23
  end
25
24
 
26
- def process_api_key(path)
27
- return path if @api_key.nil?
28
-
29
- if URI(path).query.nil?
30
- path += "?API_KEY=#{@api_key}"
31
- else
32
- path += "&API_KEY=#{@api_key}"
33
- end
34
-
35
- path
36
- end
37
-
38
25
  def get(path, query={}, headers = {})
39
26
  execute do
40
27
  headers = default_headers.merge(headers)
41
28
  options = {query: query, headers: headers}
42
- path = process_api_key(path)
43
29
  self.class.get(path, options)
44
30
  end
45
31
  end
@@ -80,7 +66,7 @@ module CS
80
66
  header = self.class.default_options[:headers] || {}
81
67
  header.merge!({"Content-Type" => "application/json"})
82
68
  if @session_id
83
- header = header.merge('X-SESSION_ID' => self.session_id)
69
+ header.merge!('X-SESSION_ID' => self.session_id)
84
70
  end
85
71
  header
86
72
  end
@@ -93,19 +79,18 @@ module CS
93
79
  @session_id = session_id
94
80
  end
95
81
 
82
+
96
83
  # login to commonsense
97
84
  # @return [String] session_id
98
- def login(username, password, digest=true)
99
- if digest
100
- password = Digest::MD5.hexdigest password
101
- end
85
+ def login(username, password)
86
+ password = Digest::MD5.hexdigest password
102
87
  post('/login.json', {:username => username, :password => password})
103
88
 
104
89
  if @response_code == 200
105
90
  self.session_id = response_body['session_id']
106
91
  else
107
92
  self.session_id = false
108
- @errors = [response_body['error']]
93
+ errors = [response_body['error']]
109
94
  end
110
95
 
111
96
  session_id
@@ -119,7 +104,6 @@ module CS
119
104
  end
120
105
 
121
106
  def parse_response
122
- return unless @response_body
123
107
  @response_code = @response_body.response.code.to_i
124
108
  @response_headers = @response_body.headers
125
109
  if @response_code >= 400
@@ -26,8 +26,8 @@ module CS
26
26
  end
27
27
  end
28
28
 
29
-
30
- def to_cs_sensor
29
+ # overide Endpoint#to_parameters
30
+ def to_parameters
31
31
  param = self.to_h(false)
32
32
  if param[:data_type] == "json"
33
33
  if param[:data_structure] && !param[:data_structure].kind_of?(String)
@@ -35,13 +35,7 @@ module CS
35
35
  end
36
36
  end
37
37
 
38
- param
39
- end
40
-
41
- # overide Endpoint#to_parameters
42
- def to_parameters
43
-
44
- {sensor: to_cs_sensor}
38
+ {sensor: param}
45
39
  end
46
40
 
47
41
  def data
@@ -26,7 +26,7 @@ module CS
26
26
  resources "data"
27
27
  resource "data"
28
28
 
29
- def to_cs_point
29
+ def to_parameters
30
30
  param = self.to_h(false)
31
31
  param.delete(:sensor_id)
32
32
  value = param[:value]
@@ -35,12 +35,7 @@ module CS
35
35
  end
36
36
 
37
37
  param[:date] = CS::Time.new(date).to_f if param[:date]
38
-
39
- param
40
- end
41
-
42
- def to_parameters
43
- {data: [to_cs_point]}
38
+ {data: [param]}
44
39
  end
45
40
 
46
41
  def date_human
data/lib/cs/relation.rb CHANGED
@@ -45,7 +45,7 @@ module CS
45
45
  end
46
46
 
47
47
  def get_data(params={})
48
- get_data!(params)
48
+ get_data!(params) rescue nil
49
49
  end
50
50
 
51
51
  def all
@@ -94,6 +94,7 @@ module CS
94
94
  end
95
95
 
96
96
  def last
97
+ total = count
97
98
  resource = get_single_resource(page: count - 1)
98
99
  parse_single_resource(resource)
99
100
  end
@@ -145,7 +146,7 @@ module CS
145
146
  options[:page] = self.page
146
147
  data = get_data(options)
147
148
 
148
- data = data[resource_class.resources_name] unless data.nil?
149
+ data = data[resource_class.resources_name]
149
150
  if !data.nil? && !data.empty?
150
151
  yield data
151
152
  self.page += 1
@@ -100,18 +100,6 @@ module CS
100
100
  self.select { |sensor| sensor.name =~ regex }
101
101
  end
102
102
 
103
- def triggers()
104
- Relation::SensorTriggersRelation.new(@session)
105
- end
106
-
107
- def clone_from(other_sensor)
108
- sensor = Sensor.new(other_sensor.to_parameters[:sensor])
109
- sensor.id = nil
110
- sensor.session = self.session
111
-
112
- sensor
113
- end
114
-
115
103
  private
116
104
  def resource_class
117
105
  EndPoint::Sensor
@@ -121,15 +109,5 @@ module CS
121
109
  "/sensors.json"
122
110
  end
123
111
  end
124
-
125
- class SensorTriggersRelation
126
- include Relation
127
-
128
- parameter :page, Integer, default: 0, required: true
129
-
130
- def get_url
131
- "/sensors/triggers.json"
132
- end
133
- end
134
112
  end
135
113
  end
data/lib/cs/session.rb CHANGED
@@ -13,9 +13,9 @@ module CS
13
13
 
14
14
  # login to commonsense
15
15
  # @return [String] session_id
16
- def login(username, password, digest=true)
16
+ def login(username, password)
17
17
  @auth_proxy = CS::Auth::HTTP.new(@base_uri)
18
- @auth_proxy.login(username, password, digest)
18
+ @auth_proxy.login(username, password)
19
19
  end
20
20
 
21
21
  def oauth(consumer_key, consumer_secret, access_token, access_token_secret)
@@ -28,20 +28,11 @@ module CS
28
28
  auth_proxy.session_id
29
29
  end
30
30
 
31
- def api_key
32
- auth_proxy.api_key
33
- end
34
-
35
31
  def session_id=(session_id)
36
32
  @auth_proxy = CS::Auth::HTTP.new(@base_uri)
37
33
  @auth_proxy.session_id = session_id
38
34
  end
39
35
 
40
- def api_key=(api_key)
41
- @api_key = api_key
42
- @auth_proxy = CS::Auth::HTTP.new(@base_uri, api_key)
43
- end
44
-
45
36
  def auth_proxy
46
37
  raise 'The session is not logged in' unless @auth_proxy
47
38
  @auth_proxy
@@ -155,12 +146,7 @@ module CS
155
146
  end
156
147
 
157
148
  def to_s
158
- if session_id
159
- return "SESSION_ID \"#{session_id}\""
160
- elsif api_key
161
- return "API_KEY \"#{api_key}\""
162
- end
163
- return ""
149
+ "\"#{self.session_id}\""
164
150
  end
165
151
 
166
152
  def inspect
data/lib/cs/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CS
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1beta"
3
3
  end
@@ -7,6 +7,7 @@ describe "User management" do
7
7
 
8
8
  let!(:user) do
9
9
  username = "user1@tester.com"
10
+ password = "password"
10
11
 
11
12
  client = CS::Client.new(base_uri: base_uri)
12
13
  user = client.new_user
@@ -24,7 +25,7 @@ describe "User management" do
24
25
 
25
26
  let!(:logged_in_client) do
26
27
  client = CS::Client.new(base_uri: base_uri)
27
- client.session_id = '123488'
28
+ client.session_id = '1234'
28
29
  client
29
30
  end
30
31
 
@@ -89,7 +90,7 @@ describe "User management" do
89
90
  }
90
91
 
91
92
  stub_request(:get, "http://api.dev.sense-os.local/users/current.json?").
92
- with(:headers => {'Content-Type'=>'application/json', 'X-Session-Id'=>'123488'}).
93
+ with(:headers => {'Content-Type'=>'application/json', 'X-Session-Id'=>'1234'}).
93
94
  to_return(:status => 200, :body => body.to_json, :headers => {'Content-Type'=>'application/json'})
94
95
 
95
96
  client = logged_in_client
@@ -57,6 +57,15 @@ module CS
57
57
  end
58
58
  end
59
59
 
60
+ describe "get_data" do
61
+ it "should not throw an exception" do
62
+ relation = GroupRelation.new
63
+ relation.stub(:get_data!).and_return { raise Error }
64
+
65
+ expect { relation.get_data }.to_not raise_error
66
+ end
67
+ end
68
+
60
69
  describe "each" do
61
70
  it "should get all users group and yield each" do
62
71
  session = double('Session')
@@ -78,6 +78,17 @@ module CS
78
78
  end
79
79
  end
80
80
 
81
+ describe "get_data" do
82
+ it "call get_data! and not throw exception" do
83
+ sensor_id = 1
84
+ relation = SensorDataRelation.new(sensor_id)
85
+ relation.stub(:get_data!).and_return { raise Error }
86
+
87
+ expect { relation.get_data }.to_not raise_error
88
+ relation.get_data.should be_nil
89
+ end
90
+ end
91
+
81
92
  describe "each_batch" do
82
93
  it "should yield data to with multiple pages" do
83
94
  sensor_id = 1
@@ -32,6 +32,15 @@ module CS
32
32
  end
33
33
  end
34
34
 
35
+ describe "get_data" do
36
+ it "should not throw an exception" do
37
+ relation = SensorRelation.new
38
+ relation.stub(:get_data!).and_return { raise Error }
39
+
40
+ expect { relation.get_data }.to_not raise_error
41
+ end
42
+ end
43
+
35
44
  describe "each" do
36
45
  it "should get all sensor and yield each" do
37
46
  session = double('Session')
@@ -6,6 +6,7 @@ describe "session" do
6
6
 
7
7
  let!(:user) do
8
8
  username = "user1@tester.com"
9
+ password = "password"
9
10
 
10
11
  client = CS::Client.new(base_uri: base_uri)
11
12
  user = client.new_user
@@ -68,24 +69,9 @@ describe "session" do
68
69
  client = create_client
69
70
  CS::Auth::OAuth.should_receive(:new).with('CS_CONSUMER_KEY', 'CS_CONSUMER_SECRET',
70
71
  'CS_ACCESS_TOKEN', 'CS_ACCESS_TOKEN_SECRET', base_uri)
71
- client.oauth('CS_CONSUMER_KEY', 'CS_CONSUMER_SECRET',
72
+ session = client.oauth('CS_CONSUMER_KEY', 'CS_CONSUMER_SECRET',
72
73
  'CS_ACCESS_TOKEN', 'CS_ACCESS_TOKEN_SECRET')
73
74
  end
74
75
  end
75
76
  end
76
-
77
- describe "API_KEY" do
78
- it "should append API key in the url" do
79
- client = create_client
80
- client.api_key = '123456'
81
- CS::Auth::HTTP.should_receive(:get).
82
- with("/sensors.json?API_KEY=123456",
83
- {:query=>{:page=>0, :per_page=>1000},
84
- :headers=>{"Content-Type"=>"application/json"}}
85
- )
86
-
87
- result = client.sensors
88
- result.to_a
89
- end
90
- end
91
77
  end
data/spec/lib/cs_spec.rb CHANGED
@@ -10,7 +10,7 @@ module CS
10
10
 
11
11
  let!(:logged_in_client) do
12
12
  client = CS::Client.new(base_uri: base_uri)
13
- client.session_id = '123499'
13
+ client.session_id = '1234'
14
14
  client
15
15
  end
16
16
 
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'bundler/setup'
2
2
  require 'rspec'
3
3
  require 'cs'
4
- require 'pry'
4
+ #require 'pry'
5
5
 
6
6
  Dir[File.join(File.dirname(__FILE__),("support/**/*.rb"))].each {|f| require f}
7
7
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ahmy Yulrizka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-06 00:00:00.000000000 Z
11
+ date: 2014-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: launchy
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - ~>
32
32
  - !ruby/object:Gem::Version
33
- version: '0.12'
33
+ version: '0.11'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ~>
39
39
  - !ruby/object:Gem::Version
40
- version: '0.12'
40
+ version: '0.11'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: oauth
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -69,23 +69,17 @@ files:
69
69
  - lib/cs.rb
70
70
  - lib/cs/auth/http.rb
71
71
  - lib/cs/auth/oauth.rb
72
- - lib/cs/collection.rb
73
- - lib/cs/collection/sensor_data_collection.rb
74
72
  - lib/cs/end_point.rb
75
73
  - lib/cs/end_point/group.rb
76
- - lib/cs/end_point/notification.rb
77
74
  - lib/cs/end_point/sensor.rb
78
75
  - lib/cs/end_point/sensor_data.rb
79
- - lib/cs/end_point/trigger.rb
80
76
  - lib/cs/end_point/user.rb
81
77
  - lib/cs/error.rb
82
78
  - lib/cs/parameter_processor.rb
83
79
  - lib/cs/relation.rb
84
80
  - lib/cs/relation/group_relation.rb
85
- - lib/cs/relation/notification_relation.rb
86
81
  - lib/cs/relation/sensor_data_relation.rb
87
82
  - lib/cs/relation/sensor_relation.rb
88
- - lib/cs/relation/trigger_relation.rb
89
83
  - lib/cs/relation/user_relation.rb
90
84
  - lib/cs/serializer.rb
91
85
  - lib/cs/session.rb
@@ -94,7 +88,6 @@ files:
94
88
  - spec/features/sensor_data_management_spec.rb
95
89
  - spec/features/sensor_management_spec.rb
96
90
  - spec/features/user_management_spec.rb
97
- - spec/lib/cs/collection/sensor_data_collection_spec.rb
98
91
  - spec/lib/cs/end_point/group_spec.rb
99
92
  - spec/lib/cs/end_point/sensor_data_spec.rb
100
93
  - spec/lib/cs/end_point/sensor_spec.rb
@@ -122,12 +115,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
115
  requirements:
123
116
  - - '>='
124
117
  - !ruby/object:Gem::Version
125
- version: 1.9.3
118
+ version: '0'
126
119
  required_rubygems_version: !ruby/object:Gem::Requirement
127
120
  requirements:
128
- - - '>='
121
+ - - '>'
129
122
  - !ruby/object:Gem::Version
130
- version: '0'
123
+ version: 1.3.1
131
124
  requirements: []
132
125
  rubyforge_project:
133
126
  rubygems_version: 2.1.9
@@ -138,7 +131,6 @@ test_files:
138
131
  - spec/features/sensor_data_management_spec.rb
139
132
  - spec/features/sensor_management_spec.rb
140
133
  - spec/features/user_management_spec.rb
141
- - spec/lib/cs/collection/sensor_data_collection_spec.rb
142
134
  - spec/lib/cs/end_point/group_spec.rb
143
135
  - spec/lib/cs/end_point/sensor_data_spec.rb
144
136
  - spec/lib/cs/end_point/sensor_spec.rb
data/lib/cs/collection.rb DELETED
@@ -1,7 +0,0 @@
1
- module CS
2
- ##
3
- # Module to handle Collection
4
- module Collection
5
-
6
- end
7
- end
@@ -1,61 +0,0 @@
1
- require 'delegate'
2
-
3
- module CS
4
- module Collection
5
- class SensorDataCollection < SimpleDelegator
6
- attr_accessor :session
7
- attr_accessor :batch_size
8
-
9
- def initialize
10
- @batch_size = 1000
11
- super([])
12
- end
13
-
14
- def save!
15
- check_session!
16
-
17
- # group batch
18
- self.each_slice(@batch_size) do |batch|
19
- body = process_batch(batch)
20
- @session.post(get_url, body)
21
- end
22
- end
23
-
24
- ##
25
- # Given array of sensor data it will group the data by sensor_id
26
- # and construct payload for multiple sensor upload
27
- def process_batch(batch)
28
- sensors = {}
29
- batch.each do |point|
30
- next if point.nil? || point.sensor_id.nil?
31
- sensor_id = point.sensor_id
32
-
33
- if !sensors[sensor_id]
34
- sensors[sensor_id] = {
35
- sensor_id: sensor_id,
36
- data: []
37
- }
38
- end
39
-
40
- sensors[sensor_id][:data].push(point.to_cs_point)
41
- end
42
-
43
- retval = []
44
- sensors.each do |k, v|
45
- retval.push(v)
46
- end
47
-
48
- {sensors: retval}
49
- end
50
-
51
- def get_url
52
- "/sensors/data.json"
53
- end
54
-
55
- private
56
- def check_session!
57
- raise Error::SessionEmptyError unless @session
58
- end
59
- end
60
- end
61
- end
@@ -1,16 +0,0 @@
1
- module CS
2
- module EndPoint
3
- class Notification
4
- include EndPoint
5
-
6
- attribute :type, :text, :destination
7
-
8
- resources "notifications"
9
- resource "notification"
10
-
11
- def initialize(hash={})
12
- from_hash(hash)
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module CS
2
- module EndPoint
3
- class Trigger
4
- include EndPoint
5
-
6
- attribute :name, :expression, :inactivity, :creation_date
7
-
8
- resources "triggers"
9
- resource "trigger"
10
-
11
- def initialize(hash={})
12
- from_hash(hash)
13
- end
14
- end
15
- end
16
- end
@@ -1,20 +0,0 @@
1
- module CS
2
- module Relation
3
- class NotificationRelation
4
- include Relation
5
-
6
- parameter :page, Integer, default: 0, required: true
7
- parameter :per_page, Integer, default: 1000, required: true, maximum: 1000
8
- parameter :total, Boolean
9
-
10
- private
11
- def resource_class
12
- EndPoint::Notification
13
- end
14
-
15
- def get_url
16
- "/notifications.json"
17
- end
18
- end
19
- end
20
- end
@@ -1,21 +0,0 @@
1
- module CS
2
- module Relation
3
- class TriggerRelation
4
- include Relation
5
-
6
- parameter :page, Integer, default: 0, required: true
7
- parameter :per_page, Integer, default: 1000, required: true, maximum: 1000
8
- parameter :total, Boolean
9
-
10
-
11
- private
12
- def resource_class
13
- EndPoint::Trigger
14
- end
15
-
16
- def get_url
17
- "/triggers.json"
18
- end
19
- end
20
- end
21
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- module CS
4
- module Collection
5
- describe SensorDataCollection do
6
- describe "process_batch" do
7
- it "should convert into multi data payload" do
8
- sdc = SensorDataCollection.new
9
- sdc.batch_size = 2
10
-
11
- current_batch = [
12
- EndPoint::SensorData.new(sensor_id: 1, value: 1),
13
- EndPoint::SensorData.new(sensor_id: 1, value: 2),
14
- EndPoint::SensorData.new(sensor_id: 2, value: 1),
15
- EndPoint::SensorData.new(sensor_id: 2, value: 2),
16
- EndPoint::SensorData.new(sensor_id: 1, value: 3),
17
- EndPoint::SensorData.new(sensor_id: 1, value: 4),
18
- EndPoint::SensorData.new(sensor_id: 2, value: 3),
19
- EndPoint::SensorData.new(sensor_id: 2, value: 4)
20
- ]
21
-
22
- sdc.process_batch(current_batch)
23
- end
24
- end
25
- end
26
- end
27
- end