notify-push 0.1.0 → 0.1.1
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 +4 -4
- data/Gemfile +5 -5
- data/Gemfile.lock +2 -0
- data/README.md +56 -0
- data/Rakefile +8 -0
- data/VERSION +1 -1
- data/lib/notify-push.rb +30 -16
- data/notify-push.gemspec +7 -3
- metadata +22 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e5e52e6142a2573fe33415d6b71362d4988763f4
|
4
|
+
data.tar.gz: 95903bb0ece552d3cd9305d55c5db64a1efbfd8e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b932e42771827493e8877ce6b7959ca0fcbbe888e426f8247ee795a42d0bfd611e70dddd4fcab9aa9382af2de4d581fb76da062f5f4230b3eeac96bdf3852ac5
|
7
|
+
data.tar.gz: f5b1ea146162bc5bd06d7a6dad2a466caa2ebe504c25f00cadbd929e960e40b1ee11ad66689cd82c57bb1e4ceae81d357501b0bac79ce97ffa25b6dd8449c5a5
|
data/Gemfile
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
+
# ================================================
|
2
|
+
# GEMFILE ========================================
|
3
|
+
# ================================================
|
1
4
|
source "http://rubygems.org"
|
2
|
-
|
3
|
-
# Example:
|
4
|
-
# gem "activesupport", ">= 2.3.5"
|
5
|
+
|
5
6
|
gem "pusher"
|
6
7
|
gem "pusher-client"
|
7
8
|
gem "activesupport"
|
8
9
|
gem "recursive-open-struct"
|
9
10
|
gem "pidfile"
|
11
|
+
gem "os"
|
10
12
|
|
11
|
-
# Add dependencies to develop your gem here.
|
12
|
-
# Include everything needed to run rake, tests, features, etc.
|
13
13
|
group :development do
|
14
14
|
gem "shoulda", ">= 0"
|
15
15
|
gem "rdoc", "~> 3.12"
|
data/Gemfile.lock
CHANGED
@@ -51,6 +51,7 @@ GEM
|
|
51
51
|
multi_json (~> 1.3)
|
52
52
|
multi_xml (~> 0.5)
|
53
53
|
rack (~> 1.2)
|
54
|
+
os (0.9.6)
|
54
55
|
pidfile (0.3.0)
|
55
56
|
pusher (0.14.5)
|
56
57
|
httpclient (~> 2.5)
|
@@ -89,6 +90,7 @@ DEPENDENCIES
|
|
89
90
|
activesupport
|
90
91
|
bundler (~> 1.0)
|
91
92
|
jeweler (~> 2.0.1)
|
93
|
+
os
|
92
94
|
pidfile
|
93
95
|
pusher
|
94
96
|
pusher-client
|
data/README.md
CHANGED
@@ -1,3 +1,59 @@
|
|
1
1
|
# notify-push
|
2
2
|
A general purpose popup notifier sender/receiver for using WebSockets (via Pusher).
|
3
3
|
|
4
|
+
## Disclaimer
|
5
|
+
|
6
|
+

|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
### Create Pusher App
|
11
|
+
Create an App on [Pusher](https://pusher.com) named **notify-push**. The free account should be plenty.
|
12
|
+
|
13
|
+
### Install notify-push
|
14
|
+
For the Receiver machine and the Sender machine(s):
|
15
|
+
|
16
|
+
```Shell
|
17
|
+
$ gem install notify-push
|
18
|
+
```
|
19
|
+
|
20
|
+
### Create & Distribute Configuration File
|
21
|
+
Next, create a configuration file with your Pusher App's credentials (found on your Pusher App's page under *App Credentials*) and distribute it to each machine (Receiver and Sender(s)).
|
22
|
+
|
23
|
+
**Location**: `~/.notify-pushrc`
|
24
|
+
|
25
|
+
#### Example
|
26
|
+
|
27
|
+
```YML
|
28
|
+
pusher:
|
29
|
+
key: a1a2a3b1b2b3c1c2c3d1
|
30
|
+
secret: a1a2a3b1b2b3c1c3c1d1
|
31
|
+
app_id: 12345
|
32
|
+
```
|
33
|
+
|
34
|
+
## Receiver
|
35
|
+
|
36
|
+
### Usage
|
37
|
+
Invoke the Receiver with:
|
38
|
+
|
39
|
+
```Shell
|
40
|
+
$ notify-push --receiver # or -r
|
41
|
+
```
|
42
|
+
|
43
|
+
TODO: There's a .plist launchd file in there but it's not ready.
|
44
|
+
|
45
|
+
## Sender
|
46
|
+
|
47
|
+
### Usage
|
48
|
+
|
49
|
+
```Shell
|
50
|
+
$ notify-push <message> [title] [subtitle]
|
51
|
+
```
|
52
|
+
|
53
|
+
Alternatively, you can `curl` or use any Pusher tool to send on messages to your `notify-push` app on channel `"notifications"` with data:
|
54
|
+
|
55
|
+
```
|
56
|
+
message: The message to notify you with in the notifier popup (REQUIRED)
|
57
|
+
title: The title of the notifier popup (Optional)
|
58
|
+
subtitle: The subtitle of the notifier popup (Optional)
|
59
|
+
```
|
data/Rakefile
CHANGED
@@ -22,6 +22,14 @@ Jeweler::Tasks.new do |gem|
|
|
22
22
|
gem.email = "erik@nomitch.com"
|
23
23
|
gem.authors = ["Erik Nomitch"]
|
24
24
|
gem.licenses = ["GPL-2"]
|
25
|
+
gem.post_install_message = <<-EOS
|
26
|
+
---------------------------------------------------------------
|
27
|
+
You may need to create a configuration file at ~/.notify-pushrc
|
28
|
+
|
29
|
+
See the example at https://github.com/eriknomitch/notify-push
|
30
|
+
---------------------------------------------------------------
|
31
|
+
EOS
|
32
|
+
|
25
33
|
#s.files = `git ls-files`.split("\n")
|
26
34
|
# dependencies defined in Gemfile
|
27
35
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.1
|
data/lib/notify-push.rb
CHANGED
@@ -2,9 +2,11 @@ require "json"
|
|
2
2
|
require "shellwords"
|
3
3
|
require "yaml"
|
4
4
|
require "recursive-open-struct"
|
5
|
-
require "
|
6
|
-
|
7
|
-
require
|
5
|
+
require "os"
|
6
|
+
|
7
|
+
require "active_support/core_ext/hash/reverse_merge"
|
8
|
+
require "active_support/core_ext/module"
|
9
|
+
require "active_support/core_ext/object/blank"
|
8
10
|
|
9
11
|
# ------------------------------------------------
|
10
12
|
# MODULE->NOTIFY-PUSH ----------------------------
|
@@ -19,7 +21,7 @@ module NotifyPush
|
|
19
21
|
# ----------------------------------------------
|
20
22
|
# CONSTANTS ------------------------------------
|
21
23
|
# ----------------------------------------------
|
22
|
-
CHANNEL_NAME
|
24
|
+
CHANNEL_NAME = "notify-push"
|
23
25
|
CONFIGURATION_FILE_PATH = "#{ENV["HOME"]}/.notify-pushrc"
|
24
26
|
|
25
27
|
# ----------------------------------------------
|
@@ -63,18 +65,28 @@ module NotifyPush
|
|
63
65
|
def self.start()
|
64
66
|
require "pusher"
|
65
67
|
|
66
|
-
|
68
|
+
# The only thing we require is a message.
|
69
|
+
# The others will be nil if not supplied.
|
70
|
+
raise "No message supplied." if ARGV[0].blank?
|
67
71
|
|
68
|
-
|
72
|
+
notification = {
|
73
|
+
message: ARGV[0],
|
74
|
+
title: ARGV[1],
|
75
|
+
subtitle: ARGV[2]
|
76
|
+
}
|
69
77
|
|
70
|
-
|
78
|
+
# Strip the nil key/value pairs out so we don't have to
|
79
|
+
# worry about them on the Receiver end.
|
80
|
+
notification.delete_if {|key, value| value.blank?}
|
81
|
+
|
82
|
+
# Connect to Pusher and trigger the notification
|
83
|
+
Pusher.url = "http://#{configuration.pusher.key}:#{configuration.pusher.secret}@api.pusherapp.com/apps/#{configuration.pusher.app_id}"
|
71
84
|
|
72
|
-
notification[:title] = ARGV[1] if ARGV[1]
|
73
|
-
|
74
85
|
Pusher[CHANNEL_NAME].trigger("notification", notification)
|
75
86
|
|
76
87
|
0
|
77
88
|
end
|
89
|
+
|
78
90
|
end
|
79
91
|
|
80
92
|
# ----------------------------------------------
|
@@ -103,17 +115,20 @@ module NotifyPush
|
|
103
115
|
end
|
104
116
|
|
105
117
|
def self.ensure_compatibility
|
106
|
-
|
118
|
+
OS.mac? or "The notify-push receiver only supports OS X."
|
107
119
|
end
|
108
120
|
|
109
121
|
# --------------------------------------------
|
110
122
|
# NOTIFY -------------------------------------
|
111
123
|
# --------------------------------------------
|
112
|
-
def self.notify(title: "notify-push", subtitle: nil, message:
|
124
|
+
def self.notify(title: "notify-push", subtitle: nil, message:)
|
113
125
|
|
114
|
-
args = [
|
126
|
+
args = [
|
127
|
+
"-message", message,
|
128
|
+
"-title", title
|
129
|
+
]
|
115
130
|
|
116
|
-
args.concat ["-subtitle", subtitle]
|
131
|
+
args.concat ["-subtitle", subtitle] unless subtitle.blank?
|
117
132
|
|
118
133
|
system "terminal-notifier", *args
|
119
134
|
end
|
@@ -137,7 +152,7 @@ module NotifyPush
|
|
137
152
|
socket.subscribe(CHANNEL_NAME)
|
138
153
|
|
139
154
|
# Bind to the main channel event
|
140
|
-
socket[CHANNEL_NAME].bind(
|
155
|
+
socket[CHANNEL_NAME].bind("notification") do |data|
|
141
156
|
|
142
157
|
begin
|
143
158
|
data = JSON.parse(data, symbolize_names: true)
|
@@ -166,7 +181,6 @@ module NotifyPush
|
|
166
181
|
0
|
167
182
|
end
|
168
183
|
|
169
|
-
|
170
184
|
end
|
171
185
|
end
|
172
186
|
|
@@ -174,6 +188,6 @@ end
|
|
174
188
|
# TRAP->SIGINT -----------------------------------
|
175
189
|
# ------------------------------------------------
|
176
190
|
trap "SIGINT" do
|
177
|
-
puts "Exiting"
|
191
|
+
puts "Exiting."
|
178
192
|
exit 130
|
179
193
|
end
|
data/notify-push.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: notify-push 0.1.
|
5
|
+
# stub: notify-push 0.1.1 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "notify-push"
|
9
|
-
s.version = "0.1.
|
9
|
+
s.version = "0.1.1"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Erik Nomitch"]
|
14
|
-
s.date = "2015-06-
|
14
|
+
s.date = "2015-06-04"
|
15
15
|
s.description = "A general purpose popup notifier sender/receiver using WebSockets (via Pusher)"
|
16
16
|
s.email = "erik@nomitch.com"
|
17
17
|
s.executables = ["notify-push"]
|
@@ -37,6 +37,7 @@ Gem::Specification.new do |s|
|
|
37
37
|
]
|
38
38
|
s.homepage = "http://github.com/eriknomitch/notify-push"
|
39
39
|
s.licenses = ["GPL-2"]
|
40
|
+
s.post_install_message = "---------------------------------------------------------------\nYou may need to create a configuration file at ~/.notify-pushrc\n\nSee the example at https://github.com/eriknomitch/notify-push\n---------------------------------------------------------------\n"
|
40
41
|
s.rubygems_version = "2.4.6"
|
41
42
|
s.summary = "A general purpose popup notifier sender/receiver using WebSockets (via Pusher)"
|
42
43
|
|
@@ -49,6 +50,7 @@ Gem::Specification.new do |s|
|
|
49
50
|
s.add_runtime_dependency(%q<activesupport>, [">= 0"])
|
50
51
|
s.add_runtime_dependency(%q<recursive-open-struct>, [">= 0"])
|
51
52
|
s.add_runtime_dependency(%q<pidfile>, [">= 0"])
|
53
|
+
s.add_runtime_dependency(%q<os>, [">= 0"])
|
52
54
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
53
55
|
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
54
56
|
s.add_development_dependency(%q<yard>, ["~> 0.7"])
|
@@ -61,6 +63,7 @@ Gem::Specification.new do |s|
|
|
61
63
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
62
64
|
s.add_dependency(%q<recursive-open-struct>, [">= 0"])
|
63
65
|
s.add_dependency(%q<pidfile>, [">= 0"])
|
66
|
+
s.add_dependency(%q<os>, [">= 0"])
|
64
67
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
65
68
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
66
69
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
@@ -74,6 +77,7 @@ Gem::Specification.new do |s|
|
|
74
77
|
s.add_dependency(%q<activesupport>, [">= 0"])
|
75
78
|
s.add_dependency(%q<recursive-open-struct>, [">= 0"])
|
76
79
|
s.add_dependency(%q<pidfile>, [">= 0"])
|
80
|
+
s.add_dependency(%q<os>, [">= 0"])
|
77
81
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
78
82
|
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
79
83
|
s.add_dependency(%q<yard>, ["~> 0.7"])
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: notify-push
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Nomitch
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pusher
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: os
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: shoulda
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,7 +206,12 @@ homepage: http://github.com/eriknomitch/notify-push
|
|
192
206
|
licenses:
|
193
207
|
- GPL-2
|
194
208
|
metadata: {}
|
195
|
-
post_install_message:
|
209
|
+
post_install_message: |
|
210
|
+
---------------------------------------------------------------
|
211
|
+
You may need to create a configuration file at ~/.notify-pushrc
|
212
|
+
|
213
|
+
See the example at https://github.com/eriknomitch/notify-push
|
214
|
+
---------------------------------------------------------------
|
196
215
|
rdoc_options: []
|
197
216
|
require_paths:
|
198
217
|
- lib
|