notify-push 0.1.2 → 0.1.3

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: 581cc05efeb0b564d252364f42aa1db17a5d6051
4
- data.tar.gz: c56ef57c8b7807d72be9bf904b67bff07910dfb6
3
+ metadata.gz: dd0ab6b2b7e44edc715aa70fe7f88a00cb5abde7
4
+ data.tar.gz: 32e3095cbba0183ff1c2bdc7577152aca8fbbaae
5
5
  SHA512:
6
- metadata.gz: 8663dac87a2e3fa870929271b4630f2e901e4ab6426714da9c59158f4557a3e6310dc6ccae2b383ed7d8521c1dbb0c89f810aac8b8776ccddcf78bd1e1ddf958
7
- data.tar.gz: e40672519d2a75536449008c685567aa3c1cba688cf30f093345321ca5fb112ac3f5d006a10061a32a73a7aa2c7d88704cc5910eb055e6c59fd708647a79961f
6
+ metadata.gz: 1ad5497e2be621ae61ba77e46bb7828d32746eddb23d2141806e0f5ef1fb3f1209a47f462b08e98c5046b4f3d592902dafdb86dbfc6a08239734bd11262190f8
7
+ data.tar.gz: f1f291e6bb25d4e8fe0ef0e18a9f1c14e49dcdba287fbacff1a34ce81426fde6edcd27274335b7ad52380483ad6c5de155252710ded1a831e9a7381a6d1bfc2c
data/Gemfile CHANGED
@@ -3,12 +3,27 @@
3
3
  # ================================================
4
4
  source "http://rubygems.org"
5
5
 
6
+ # http://stackoverflow.com/questions/8420414/how-to-add-mac-specific-gems-to-bundle-on-mac-but-not-on-linux
7
+ def windows_only(require_as)
8
+ RbConfig::CONFIG['host_os'] =~ /mingw|mswin/i ? require_as : false
9
+ end
10
+
11
+ def linux_only(require_as)
12
+ RbConfig::CONFIG['host_os'] =~ /linux/ ? require_as : false
13
+ end
14
+
15
+ def darwin_only(require_as)
16
+ RbConfig::CONFIG['host_os'] =~ /darwin/ ? require_as : false
17
+ end
18
+
6
19
  gem "pusher"
7
20
  gem "pusher-client"
8
21
  gem "activesupport"
9
22
  gem "recursive-open-struct"
10
23
  gem "pidfile"
11
24
  gem "os"
25
+ #gem "terminal-notifier", require: darwin_only("terminal-notifier")
26
+ gem "notifier"
12
27
 
13
28
  group :development do
14
29
  gem "shoulda", ">= 0"
@@ -17,4 +32,5 @@ group :development do
17
32
  gem "bundler", "~> 1.0"
18
33
  gem "jeweler", "~> 2.0.1"
19
34
  gem "simplecov", ">= 0"
35
+ gem "pry"
20
36
  end
@@ -9,6 +9,7 @@ GEM
9
9
  tzinfo (~> 1.1)
10
10
  addressable (2.3.8)
11
11
  builder (3.2.2)
12
+ coderay (1.1.0)
12
13
  descendants_tracker (0.0.4)
13
14
  thread_safe (~> 0.3, >= 0.3.1)
14
15
  docile (1.1.5)
@@ -38,6 +39,7 @@ GEM
38
39
  rdoc
39
40
  json (1.8.2)
40
41
  jwt (1.5.0)
42
+ method_source (0.8.2)
41
43
  mini_portile (0.6.2)
42
44
  minitest (5.7.0)
43
45
  multi_json (1.11.0)
@@ -45,6 +47,7 @@ GEM
45
47
  multipart-post (2.0.0)
46
48
  nokogiri (1.6.6.2)
47
49
  mini_portile (~> 0.6.0)
50
+ notifier (0.5.1)
48
51
  oauth2 (1.0.0)
49
52
  faraday (>= 0.8, < 0.10)
50
53
  jwt (~> 1.0)
@@ -53,6 +56,10 @@ GEM
53
56
  rack (~> 1.2)
54
57
  os (0.9.6)
55
58
  pidfile (0.3.0)
59
+ pry (0.10.1)
60
+ coderay (~> 1.1.0)
61
+ method_source (~> 0.8.1)
62
+ slop (~> 3.4)
56
63
  pusher (0.14.5)
57
64
  httpclient (~> 2.5)
58
65
  multi_json (~> 1.0)
@@ -77,6 +84,7 @@ GEM
77
84
  json (~> 1.8)
78
85
  simplecov-html (~> 0.10.0)
79
86
  simplecov-html (0.10.0)
87
+ slop (3.6.0)
80
88
  thread_safe (0.3.5)
81
89
  tzinfo (1.2.2)
82
90
  thread_safe (~> 0.1)
@@ -90,8 +98,10 @@ DEPENDENCIES
90
98
  activesupport
91
99
  bundler (~> 1.0)
92
100
  jeweler (~> 2.0.1)
101
+ notifier
93
102
  os
94
103
  pidfile
104
+ pry
95
105
  pusher
96
106
  pusher-client
97
107
  rdoc (~> 3.12)
data/README.md CHANGED
@@ -4,12 +4,11 @@ A general purpose popup notifier sender/receiver for using WebSockets (via [Push
4
4
  ## Overview
5
5
  `notify-push` employs a Receiver (*currently OS X only*) and Sender(s) to push messages from the Sender(s) to the Receiver.
6
6
 
7
-
8
- ![IRC Example](<img src='images/doc/terminal-notifier.png' width='359' height='121'/>)
9
-
10
7
  **Example Use Case**:
11
8
  You have `irssi` set up in a `screen` on a remote machine and you want to be notified on your laptop/desktop whenever your name gets highlighted.
12
9
 
10
+ <img src='images/doc/terminal-notifier.png' width='359' height='121' alt='IRC Example'/>
11
+
13
12
  ## Disclaimer
14
13
 
15
14
  ![Works on my Machine](http://serve.eriknomitch.com/images/works-on-my-machine.jpg "Works on my Machine")
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.1.3
@@ -0,0 +1,27 @@
1
+ use strict;
2
+ use vars qw($VERSION %IRSSI);
3
+
4
+ %IRSSI = (
5
+ authors => "Erik Nomitch",
6
+ contact => "erik\@nomitch.com",
7
+ name => "notify_push",
8
+ description => "An irssi plugin to activate notify-push",
9
+ license => "GPL-2",
10
+ url => "https://github.com/eriknomitch/notify-push",
11
+ );
12
+
13
+ use Irssi;
14
+
15
+ sub notify_push {
16
+ my ($server, $msg, $nick, $nick_addr, $target) = @_;
17
+
18
+ # WARNING: UNFINISHED - EDIT IN YOUR OWN CHANNELS
19
+
20
+ # FIX: User-defined channels.
21
+ # Only operate in these channels...
22
+ if ($target =~ m/#(?:foo|bar|baz)/) {
23
+ system "shell-notify-push", $msg, "IRC", "${nick} says..."
24
+ }
25
+ }
26
+
27
+ Irssi::signal_add_last("message public", "notify_push");
@@ -0,0 +1,26 @@
1
+ #!/bin/bash
2
+
3
+ # FIX: Unfinished
4
+
5
+ key=$PUSHER_KEY
6
+ secret=$PUSHER_SECRET
7
+ appID=$PUSHER_APP_ID
8
+
9
+ message=$1
10
+ title=$2
11
+ timestamp=$(date +%s)
12
+
13
+ data='{"name":"notification","channel":"notify-push","data":"{\"message\":\"'$message'\",\"title\":\"'$title'\"}"}'
14
+
15
+ # Be sure to use `printf %s` to prevent a trailing \n from being added to the data.
16
+ md5data=$(printf '%s' "$data" | md5sum | awk '{print $1}')
17
+ path="/apps/${appID}/events"
18
+ queryString="auth_key=${key}&auth_timestamp=${timestamp}&auth_version=1.0&body_md5=${md5data}"
19
+
20
+ # Be sure to use a multi-line, double quoted string that doesn't end in \n as
21
+ # input for the SHA-256 HMAC.
22
+ authSig=$(printf '%s' "POST
23
+ $path
24
+ $queryString" | openssl dgst -sha256 -hex -hmac "$secret")
25
+ curl -s -H "Content-Type:application/json" -d "$data" "http://api.pusherapp.com${path}?${queryString}&auth_signature=${authSig}" > /dev/null 2>&1 &
26
+
@@ -3,15 +3,39 @@ require "shellwords"
3
3
  require "yaml"
4
4
  require "recursive-open-struct"
5
5
  require "os"
6
+ require "notifier"
7
+
8
+ require "pry"
6
9
 
7
10
  require "active_support/core_ext/hash/reverse_merge"
8
11
  require "active_support/core_ext/module"
9
12
  require "active_support/core_ext/object/blank"
10
13
 
14
+ # ------------------------------------------------
15
+ # ->CLASS->OS ------------------------------------
16
+ # ------------------------------------------------
17
+ class OS
18
+ def self.host_simple
19
+ # FIX: Add more.
20
+ %i(mac linux windows).each do |os|
21
+ return os if OS.send("#{os}?")
22
+ end or raise "Cannot detect OS."
23
+ end
24
+ end
25
+
11
26
  # ------------------------------------------------
12
27
  # MODULE->NOTIFY-PUSH ----------------------------
13
28
  # ------------------------------------------------
14
29
  module NotifyPush
30
+
31
+ # ----------------------------------------------
32
+ # MODULE->UTILITY ------------------------------
33
+ # ----------------------------------------------
34
+ module Utility
35
+ def self.require_system_command_or_raise(command)
36
+ system "command -v #{command} >/dev/null 2>&1" or raise "The command '#{command}' cannot be found and is required."
37
+ end
38
+ end
15
39
 
16
40
  # ----------------------------------------------
17
41
  # ATTRIBUTES -----------------------------------
@@ -116,30 +140,17 @@ module NotifyPush
116
140
  PidFile.new
117
141
  end
118
142
 
119
- # --------------------------------------------
120
- # ENSURANCES ---------------------------------
121
- # --------------------------------------------
122
- def self.ensure_dependencies
123
- system "command -v terminal-notifier >/dev/null 2>&1" or raise "'terminal-notifier' cannot be found."
124
- end
125
-
126
- def self.ensure_compatibility
127
- OS.mac? or "The notify-push receiver only supports OS X."
128
- end
129
-
130
143
  # --------------------------------------------
131
144
  # NOTIFY -------------------------------------
132
145
  # --------------------------------------------
133
146
  def self.notify(title: "notify-push", subtitle: nil, message:)
134
147
 
135
- args = [
136
- "-message", message,
137
- "-title", title
138
- ]
148
+ message = "#{subtitle} - #{message}" if subtitle
139
149
 
140
- args.concat ["-subtitle", subtitle] unless subtitle.blank?
141
-
142
- system "terminal-notifier", *args
150
+ Notifier.notify({
151
+ title: title,
152
+ message: message
153
+ })
143
154
  end
144
155
 
145
156
  # --------------------------------------------
@@ -147,13 +158,10 @@ module NotifyPush
147
158
  # --------------------------------------------
148
159
  def self.start()
149
160
 
150
- ensure_compatibility
151
- ensure_dependencies
152
161
  pid_lock
153
162
 
154
163
  require "pusher-client"
155
164
 
156
-
157
165
  socket = PusherClient::Socket.new configuration.pusher.key, {
158
166
  secure: true
159
167
  }
@@ -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.2 ruby lib
5
+ # stub: notify-push 0.1.3 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "notify-push"
9
- s.version = "0.1.2"
9
+ s.version = "0.1.3"
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-05"
14
+ s.date = "2015-06-08"
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"]
@@ -28,6 +28,8 @@ Gem::Specification.new do |s|
28
28
  "Rakefile",
29
29
  "VERSION",
30
30
  "bin/notify-push",
31
+ "contrib/irssi/notify_push.pl",
32
+ "contrib/shell/notify-push-curl",
31
33
  "images/doc/terminal-notifier.png",
32
34
  "lib/notify-push.rb",
33
35
  "notify-push.gemspec",
@@ -52,12 +54,14 @@ Gem::Specification.new do |s|
52
54
  s.add_runtime_dependency(%q<recursive-open-struct>, [">= 0"])
53
55
  s.add_runtime_dependency(%q<pidfile>, [">= 0"])
54
56
  s.add_runtime_dependency(%q<os>, [">= 0"])
57
+ s.add_runtime_dependency(%q<notifier>, [">= 0"])
55
58
  s.add_development_dependency(%q<shoulda>, [">= 0"])
56
59
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
57
60
  s.add_development_dependency(%q<yard>, ["~> 0.7"])
58
61
  s.add_development_dependency(%q<bundler>, ["~> 1.0"])
59
62
  s.add_development_dependency(%q<jeweler>, ["~> 2.0.1"])
60
63
  s.add_development_dependency(%q<simplecov>, [">= 0"])
64
+ s.add_development_dependency(%q<pry>, [">= 0"])
61
65
  else
62
66
  s.add_dependency(%q<pusher>, [">= 0"])
63
67
  s.add_dependency(%q<pusher-client>, [">= 0"])
@@ -65,12 +69,14 @@ Gem::Specification.new do |s|
65
69
  s.add_dependency(%q<recursive-open-struct>, [">= 0"])
66
70
  s.add_dependency(%q<pidfile>, [">= 0"])
67
71
  s.add_dependency(%q<os>, [">= 0"])
72
+ s.add_dependency(%q<notifier>, [">= 0"])
68
73
  s.add_dependency(%q<shoulda>, [">= 0"])
69
74
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
70
75
  s.add_dependency(%q<yard>, ["~> 0.7"])
71
76
  s.add_dependency(%q<bundler>, ["~> 1.0"])
72
77
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
73
78
  s.add_dependency(%q<simplecov>, [">= 0"])
79
+ s.add_dependency(%q<pry>, [">= 0"])
74
80
  end
75
81
  else
76
82
  s.add_dependency(%q<pusher>, [">= 0"])
@@ -79,12 +85,14 @@ Gem::Specification.new do |s|
79
85
  s.add_dependency(%q<recursive-open-struct>, [">= 0"])
80
86
  s.add_dependency(%q<pidfile>, [">= 0"])
81
87
  s.add_dependency(%q<os>, [">= 0"])
88
+ s.add_dependency(%q<notifier>, [">= 0"])
82
89
  s.add_dependency(%q<shoulda>, [">= 0"])
83
90
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
84
91
  s.add_dependency(%q<yard>, ["~> 0.7"])
85
92
  s.add_dependency(%q<bundler>, ["~> 1.0"])
86
93
  s.add_dependency(%q<jeweler>, ["~> 2.0.1"])
87
94
  s.add_dependency(%q<simplecov>, [">= 0"])
95
+ s.add_dependency(%q<pry>, [">= 0"])
88
96
  end
89
97
  end
90
98
 
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.2
4
+ version: 0.1.3
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-05 00:00:00.000000000 Z
11
+ date: 2015-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pusher
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: notifier
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: shoulda
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +192,20 @@ dependencies:
178
192
  - - ">="
179
193
  - !ruby/object:Gem::Version
180
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: pry
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
181
209
  description: A general purpose popup notifier sender/receiver using WebSockets (via
182
210
  Pusher)
183
211
  email: erik@nomitch.com
@@ -196,6 +224,8 @@ files:
196
224
  - Rakefile
197
225
  - VERSION
198
226
  - bin/notify-push
227
+ - contrib/irssi/notify_push.pl
228
+ - contrib/shell/notify-push-curl
199
229
  - images/doc/terminal-notifier.png
200
230
  - lib/notify-push.rb
201
231
  - notify-push.gemspec