device_cloud 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,14 +16,20 @@ module DeviceCloud
16
16
  attr_writer :logger
17
17
 
18
18
  # Proc that will be called for handling
19
- # DeviceCloud::PushNotification::Event objects
20
- # Proc will be called with the event object
21
- attr_accessor :push_notification_event_handler
19
+ # DeviceCloud::PushNotification::EventNotification objects
20
+ # Proc will be called with the event notification object
21
+ attr_accessor :event_notification_handler
22
22
 
23
23
  # Proc that will be called for handling
24
- # DeviceCloud::PushNotification::Alert objects
25
- # Proc will be called with the alert object
26
- attr_accessor :push_notification_alert_handler
24
+ # DeviceCloud::PushNotification::AlertNotification objects
25
+ # Proc will be called with the alert notification object
26
+ attr_accessor :alert_notification_handler
27
+
28
+ # Proc that will be called for handling
29
+ # DeviceCloud::PushNotification::DataNotification objects
30
+ # Proc will be called with the data notification object
31
+ attr_accessor :data_notification_handler
32
+
27
33
 
28
34
  # Yield self to be able to configure ActivityFeed with
29
35
  # block-style configuration.
@@ -0,0 +1,7 @@
1
+ module DeviceCloud
2
+ class PushNotification::AlertNotification < PushNotification::BaseNotification
3
+ def handle!
4
+ DeviceCloud.alert_notification_handler.call(self)
5
+ end
6
+ end
7
+ end
@@ -1,5 +1,5 @@
1
1
  module DeviceCloud
2
- class PushNotification::Base
2
+ class PushNotification::BaseNotification
3
3
  attr_reader :id, :full_path, :device_id, :value, :queued_at, :type
4
4
 
5
5
  def self.handle!(file_data)
@@ -0,0 +1,7 @@
1
+ module DeviceCloud
2
+ class PushNotification::DataNotification < PushNotification::BaseNotification
3
+ def handle!
4
+ DeviceCloud.data_notification_handler.call(self)
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module DeviceCloud
2
+ class PushNotification::EventNotification < PushNotification::BaseNotification
3
+ def handle!
4
+ DeviceCloud.event_notification_handler.call(self)
5
+ end
6
+ end
7
+ end
@@ -2,7 +2,7 @@ module DeviceCloud
2
2
  class PushNotification::Message
3
3
  attr_accessor :timestamp, :topic, :file_data, :operation, :group, :replay
4
4
 
5
- ALLOWED_TOPICS = %w{alert event}
5
+ ALLOWED_TOPICS = %w{alert event data}
6
6
 
7
7
  def self.parse_raw_messages(raw_message_data)
8
8
  if raw_message_data.is_a? Array
@@ -17,7 +17,7 @@ module DeviceCloud
17
17
  end
18
18
  private
19
19
  def class_type(class_name)
20
- DeviceCloud.constantize "DeviceCloud::PushNotification::#{class_name.capitalize}"
20
+ DeviceCloud.constantize "DeviceCloud::PushNotification::#{class_name.capitalize}Notification"
21
21
  end
22
22
  end
23
23
  end
@@ -1,3 +1,3 @@
1
1
  module DeviceCloud
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/device_cloud.rb CHANGED
@@ -2,9 +2,10 @@ require 'device_cloud/configuration'
2
2
  require 'device_cloud/utils'
3
3
  require 'device_cloud/version'
4
4
  require 'device_cloud/push_notification'
5
- require 'device_cloud/push_notification/base'
6
- require 'device_cloud/push_notification/alert'
7
- require 'device_cloud/push_notification/event'
5
+ require 'device_cloud/push_notification/base_notification'
6
+ require 'device_cloud/push_notification/alert_notification'
7
+ require 'device_cloud/push_notification/event_notification'
8
+ require 'device_cloud/push_notification/data_notification'
8
9
  require 'device_cloud/push_notification/message'
9
10
  require 'device_cloud/push_notification/message/file_data'
10
11
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe DeviceCloud::PushNotification::Alert do
3
+ describe DeviceCloud::PushNotification::AlertNotification do
4
4
  describe "#handle!" do
5
5
  let(:data) do
6
6
  {
@@ -13,11 +13,11 @@ describe DeviceCloud::PushNotification::Alert do
13
13
  end
14
14
  let(:file_data) { OpenStruct.new(data: data, full_path: '/foo/bar/baz.json') }
15
15
 
16
- subject { DeviceCloud::PushNotification::Alert.new file_data }
16
+ subject { DeviceCloud::PushNotification::AlertNotification.new file_data }
17
17
 
18
- it "should call the DeviceCloud.push_notification_alert_handler with self" do
18
+ it "should call the DeviceCloud.alert_notification_handler with self" do
19
19
  handled_alert = nil
20
- DeviceCloud.push_notification_alert_handler = ->(alert) { handled_alert = alert }
20
+ DeviceCloud.alert_notification_handler = ->(alert) { handled_alert = alert }
21
21
 
22
22
  subject.handle!
23
23
  expect(handled_alert).to eq subject
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe DeviceCloud::PushNotification::Base do
3
+ describe DeviceCloud::PushNotification::BaseNotification do
4
4
  let(:data) do
5
5
  {
6
6
  'id' => '1234',
@@ -18,7 +18,7 @@ describe DeviceCloud::PushNotification::Base do
18
18
  )
19
19
  end
20
20
 
21
- subject { DeviceCloud::PushNotification::Base.new file_data }
21
+ subject { DeviceCloud::PushNotification::BaseNotification.new file_data }
22
22
 
23
23
  describe "attributes" do
24
24
  its(:id) { should eq data['id'] }
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+
3
+ describe DeviceCloud::PushNotification::DataNotification do
4
+ describe "#handle!" do
5
+ let(:data) do
6
+ {
7
+ 'id' => 1234,
8
+ 'device_id' => 'm:1392301029',
9
+ 'type' => 'some type',
10
+ 'queued_dt' => '2013-06-24T14:52:55.421Z',
11
+ 'value' => {'this' => 'is a value'}
12
+ }
13
+ end
14
+ let(:file_data) { OpenStruct.new(data: data, full_path: '/foo/bar/baz.json') }
15
+
16
+ subject { DeviceCloud::PushNotification::DataNotification.new file_data }
17
+
18
+ it "should call the DeviceCloud.data_notification_handler with self" do
19
+ handled_data = nil
20
+ DeviceCloud.data_notification_handler = ->(data) { handled_data = data }
21
+
22
+ subject.handle!
23
+ expect(handled_data).to eq subject
24
+ end
25
+ end
26
+ end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe DeviceCloud::PushNotification::Event do
3
+ describe DeviceCloud::PushNotification::EventNotification do
4
4
  describe "#handle!" do
5
5
  let(:data) do
6
6
  {
@@ -13,11 +13,11 @@ describe DeviceCloud::PushNotification::Event do
13
13
  end
14
14
  let(:file_data) { OpenStruct.new(data: data, full_path: '/foo/bar/baz.json') }
15
15
 
16
- subject { DeviceCloud::PushNotification::Event.new file_data }
16
+ subject { DeviceCloud::PushNotification::EventNotification.new file_data }
17
17
 
18
- it "should call the DeviceCloud.push_notification_event_handler with self" do
18
+ it "should call the DeviceCloud.event_notification_handler with self" do
19
19
  handled_event = nil
20
- DeviceCloud.push_notification_event_handler = ->(event) { handled_event = event }
20
+ DeviceCloud.event_notification_handler = ->(event) { handled_event = event }
21
21
 
22
22
  subject.handle!
23
23
  expect(handled_event).to eq subject
@@ -4,7 +4,8 @@ describe DeviceCloud::PushNotification do
4
4
  let(:raw_messages) do
5
5
  [
6
6
  { 'topic_type' => 'an alert' },
7
- { 'topic_type' => 'an event' }
7
+ { 'topic_type' => 'an event' },
8
+ { 'topic_type' => 'a piece of data' }
8
9
  ]
9
10
  end
10
11
  let(:valid_parsed_messages) do
@@ -20,6 +21,12 @@ describe DeviceCloud::PushNotification do
20
21
  valid_parsed_file_data?: true,
21
22
  topic_type: 'event',
22
23
  parsed_file_data: 'the event data'
24
+ ),
25
+ OpenStruct.new(
26
+ valid?: true,
27
+ valid_parsed_file_data?: true,
28
+ topic_type: 'data',
29
+ parsed_file_data: 'the data data'
23
30
  )
24
31
  ]
25
32
  end
@@ -41,9 +48,11 @@ describe DeviceCloud::PushNotification do
41
48
  context "all valid" do
42
49
 
43
50
  it "should call handle! on each of the message's topic_type classes" do
44
- DeviceCloud::PushNotification::Alert.should_receive(:handle!).with(valid_parsed_messages[0].parsed_file_data)
51
+ DeviceCloud::PushNotification::AlertNotification.should_receive(:handle!).with(valid_parsed_messages[0].parsed_file_data)
52
+
53
+ DeviceCloud::PushNotification::EventNotification.should_receive(:handle!).with(valid_parsed_messages[1].parsed_file_data)
45
54
 
46
- DeviceCloud::PushNotification::Event.should_receive(:handle!).with(valid_parsed_messages[1].parsed_file_data)
55
+ DeviceCloud::PushNotification::DataNotification.should_receive(:handle!).with(valid_parsed_messages[2].parsed_file_data)
47
56
 
48
57
  subject.handle_each!
49
58
 
@@ -59,9 +68,10 @@ describe DeviceCloud::PushNotification do
59
68
  parsed_file_data: 'the alert data'
60
69
  )
61
70
 
62
- DeviceCloud::PushNotification::Alert.should_not_receive(:handle!)
71
+ DeviceCloud::PushNotification::AlertNotification.should_not_receive(:handle!)
63
72
 
64
- DeviceCloud::PushNotification::Event.should_receive(:handle!)
73
+ DeviceCloud::PushNotification::EventNotification.should_receive(:handle!)
74
+ DeviceCloud::PushNotification::DataNotification.should_receive(:handle!)
65
75
 
66
76
  subject.handle_each!
67
77
  end
@@ -76,9 +86,10 @@ describe DeviceCloud::PushNotification do
76
86
  parsed_file_data: 'the alert data'
77
87
  )
78
88
 
79
- DeviceCloud::PushNotification::Alert.should_not_receive(:handle!)
89
+ DeviceCloud::PushNotification::AlertNotification.should_not_receive(:handle!)
80
90
 
81
- DeviceCloud::PushNotification::Event.should_receive(:handle!)
91
+ DeviceCloud::PushNotification::EventNotification.should_receive(:handle!)
92
+ DeviceCloud::PushNotification::DataNotification.should_receive(:handle!)
82
93
 
83
94
  subject.handle_each!
84
95
  end
data/spec/version_spec.rb CHANGED
@@ -2,6 +2,6 @@ require 'spec_helper'
2
2
 
3
3
  describe 'DeviceCloud::VERSION' do
4
4
  it 'should be the correct version' do
5
- DeviceCloud::VERSION.should == '0.0.5'
5
+ DeviceCloud::VERSION.should == '0.0.6'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: device_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-08 00:00:00.000000000 Z
12
+ date: 2013-08-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -77,16 +77,18 @@ files:
77
77
  - lib/device_cloud.rb
78
78
  - lib/device_cloud/configuration.rb
79
79
  - lib/device_cloud/push_notification.rb
80
- - lib/device_cloud/push_notification/alert.rb
81
- - lib/device_cloud/push_notification/base.rb
82
- - lib/device_cloud/push_notification/event.rb
80
+ - lib/device_cloud/push_notification/alert_notification.rb
81
+ - lib/device_cloud/push_notification/base_notification.rb
82
+ - lib/device_cloud/push_notification/data_notification.rb
83
+ - lib/device_cloud/push_notification/event_notification.rb
83
84
  - lib/device_cloud/push_notification/message.rb
84
85
  - lib/device_cloud/push_notification/message/file_data.rb
85
86
  - lib/device_cloud/utils.rb
86
87
  - lib/device_cloud/version.rb
87
- - spec/device_cloud/push_notification/alert_spec.rb
88
- - spec/device_cloud/push_notification/base_spec.rb
89
- - spec/device_cloud/push_notification/event_spec.rb
88
+ - spec/device_cloud/push_notification/alert_notification_spec.rb
89
+ - spec/device_cloud/push_notification/base_notification_spec.rb
90
+ - spec/device_cloud/push_notification/data_notification_spec.rb
91
+ - spec/device_cloud/push_notification/event_notification_spec.rb
90
92
  - spec/device_cloud/push_notification/message/file_data_spec.rb
91
93
  - spec/device_cloud/push_notification/message_spec.rb
92
94
  - spec/device_cloud/push_notification_spec.rb
@@ -118,9 +120,10 @@ signing_key:
118
120
  specification_version: 3
119
121
  summary: A Ruby wrapper for the Etherios Device Cloud
120
122
  test_files:
121
- - spec/device_cloud/push_notification/alert_spec.rb
122
- - spec/device_cloud/push_notification/base_spec.rb
123
- - spec/device_cloud/push_notification/event_spec.rb
123
+ - spec/device_cloud/push_notification/alert_notification_spec.rb
124
+ - spec/device_cloud/push_notification/base_notification_spec.rb
125
+ - spec/device_cloud/push_notification/data_notification_spec.rb
126
+ - spec/device_cloud/push_notification/event_notification_spec.rb
124
127
  - spec/device_cloud/push_notification/message/file_data_spec.rb
125
128
  - spec/device_cloud/push_notification/message_spec.rb
126
129
  - spec/device_cloud/push_notification_spec.rb
@@ -1,7 +0,0 @@
1
- module DeviceCloud
2
- class PushNotification::Alert < PushNotification::Base
3
- def handle!
4
- DeviceCloud.push_notification_alert_handler.call(self)
5
- end
6
- end
7
- end
@@ -1,7 +0,0 @@
1
- module DeviceCloud
2
- class PushNotification::Event < PushNotification::Base
3
- def handle!
4
- DeviceCloud.push_notification_event_handler.call(self)
5
- end
6
- end
7
- end