ruby-notify-my-android 0.3.2 → 0.4.0
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.
- data/README.rdoc +27 -9
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/bin/notify-my-android +51 -0
- data/lib/ruby-notify-my-android.rb +4 -2
- data/lib/ruby-notify-my-android/response.rb +9 -4
- data/ruby-notify-my-android.gemspec +5 -5
- data/test/test_ruby-notify-my-android.rb +2 -0
- metadata +8 -8
- data/bin/notify-my-andoid +0 -29
data/README.rdoc
CHANGED
@@ -4,22 +4,40 @@ Send notifications to Android devices via the Notify My Android API. Details abo
|
|
4
4
|
|
5
5
|
== Installation
|
6
6
|
|
7
|
-
|
7
|
+
gem install ruby-notify-my-android
|
8
|
+
|
9
|
+
== Usage from command line
|
10
|
+
|
11
|
+
You can send notifications from the command line with the notify-my-android script:
|
12
|
+
|
13
|
+
$ notify-my-android -k 9d0538ab7b52360e906e0e766f34501b69edde92fe3409e9
|
14
|
+
Notification sent !
|
15
|
+
|
16
|
+
Here are the full set of parameters that it accepts:
|
17
|
+
|
18
|
+
Usage: notify-my-android [options]
|
19
|
+
-k, --apikey APIKEY Your API Key
|
20
|
+
-p, --priority PRIORITY Priority (-2,-1,0,1,2)
|
21
|
+
-a, --application APPNAME Name of app
|
22
|
+
-e, --event EVENTNAME Name of event
|
23
|
+
-d, --description DESCRIPTION Notify text
|
24
|
+
|
25
|
+
Any parameters unset will use default values except --apikey
|
8
26
|
|
9
27
|
== Usage as a Gem
|
10
28
|
|
11
29
|
Sending a notification via ruby-notify-my-android gem
|
12
30
|
|
31
|
+
require 'rubygems'
|
13
32
|
require 'ruby-notify-my-android'
|
14
33
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
end
|
34
|
+
NMA.notify do |n|
|
35
|
+
n.apikey = "9d1538ab7b52360e906e0e766f34501b69edde92fe3409e9" # can also be list such as ["key1", "key2"]
|
36
|
+
n.priority = NMA::Priority::MODERATE
|
37
|
+
n.application = "NMA"
|
38
|
+
n.event = "Notification"
|
39
|
+
n.description = "Your server is under attack!!!"
|
40
|
+
end
|
23
41
|
|
24
42
|
== Using the API
|
25
43
|
|
data/Rakefile
CHANGED
@@ -19,7 +19,7 @@ Jeweler::Tasks.new do |gem|
|
|
19
19
|
gem.description = %Q{Send notifications to Android devices via the Notify My Android API. Details about the API are available at https://nma.usk.bz/api.php .}
|
20
20
|
gem.email = "ken.pepple@rabbityard.com"
|
21
21
|
gem.authors = ["Ken Pepple"]
|
22
|
-
|
22
|
+
gem.executables = [ 'notify-my-android' ]
|
23
23
|
# gem.add_runtime_dependency "xml-simple", ">= 1.0.15"
|
24
24
|
# gem.add_development_dependency 'webmock'
|
25
25
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.4.0
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
begin
|
4
|
+
require "rubygems"
|
5
|
+
require "ruby-notify-my-android"
|
6
|
+
require "optparse"
|
7
|
+
rescue LoadError
|
8
|
+
STDERR.puts "The ruby gems ruby-notify-my-android and optparse are required."
|
9
|
+
STDERR.puts "Please install them via gem install ruby-notify-my-android."
|
10
|
+
exit 1
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
# parse options
|
15
|
+
o = {}
|
16
|
+
opts = OptionParser.new
|
17
|
+
opts.on("-k", "--apikey APIKEY", "Your API Key", String) {|val| o[:apikey] = val }
|
18
|
+
opts.on("-p", "--priority PRIORITY", "Priority (-2,-1,0,1,2)", Integer) {|val| o[:priority] = val }
|
19
|
+
opts.on("-a", "--application APPNAME", "Name of app", String) {|val| o[:application] = val }
|
20
|
+
opts.on("-e", "--event EVENTNAME", "Name of event", String) {|val| o[:event] = val }
|
21
|
+
opts.on("-d", "--description DESCRIPTION", "Notify text", String) {|val| o[:priority] = val }
|
22
|
+
z = opts.parse(ARGV)
|
23
|
+
|
24
|
+
# set defaults
|
25
|
+
options = { :apikey => o[:apikey] || nil,
|
26
|
+
:description => o[:description] || nil,
|
27
|
+
:event => o[:event] || nil,
|
28
|
+
:application => o[:application] || nil,
|
29
|
+
:priority => o[:priority] || nil }
|
30
|
+
|
31
|
+
# send notification
|
32
|
+
unless options[:apikey].nil?
|
33
|
+
result = NMA.notify do |n|
|
34
|
+
n.apikey = options[:apikey]
|
35
|
+
n.priority = options[:priority] unless options[:priority].nil?
|
36
|
+
n.application = options[:application] unless options[:application].nil?
|
37
|
+
n.event = options[:event] unless options[:event].nil?
|
38
|
+
n.description = options[:description] unless options[:description].nil?
|
39
|
+
end
|
40
|
+
else
|
41
|
+
puts opts.to_s
|
42
|
+
exit 2
|
43
|
+
end
|
44
|
+
|
45
|
+
if result.succeeded?
|
46
|
+
puts "Notification sent !"
|
47
|
+
exit 0
|
48
|
+
else
|
49
|
+
puts "Error in notification: #{result.response["content"]}"
|
50
|
+
exit 3
|
51
|
+
end
|
@@ -5,9 +5,9 @@ require 'ruby-notify-my-android/notification'
|
|
5
5
|
# This is the main Notify My Andoid module
|
6
6
|
|
7
7
|
module NMA
|
8
|
-
|
8
|
+
|
9
9
|
extend self
|
10
|
-
|
10
|
+
|
11
11
|
def notify(notification = Notification.new)
|
12
12
|
yield notification if block_given?
|
13
13
|
Request.instance.call Request::Command::NOTIFY, notification.to_params
|
@@ -31,5 +31,7 @@ module NMA
|
|
31
31
|
def version
|
32
32
|
File.read(File.join(File.dirname(__FILE__), *%w[.. VERSION]))
|
33
33
|
end
|
34
|
+
|
35
|
+
VERSION = self.version
|
34
36
|
|
35
37
|
end
|
@@ -1,5 +1,10 @@
|
|
1
|
-
|
2
|
-
require 'xmlsimple'
|
1
|
+
begin
|
2
|
+
require 'xmlsimple'
|
3
|
+
rescue LoadError
|
4
|
+
STDERR.puts "No valid xml-simple library detected, please install one of 'xml-simple'."
|
5
|
+
exit -2
|
6
|
+
end
|
7
|
+
|
3
8
|
|
4
9
|
module NMA
|
5
10
|
|
@@ -14,10 +19,10 @@ module NMA
|
|
14
19
|
|
15
20
|
# A hash of the returned XML response
|
16
21
|
attr_accessor :body
|
17
|
-
|
22
|
+
|
18
23
|
# A hash of the cooked XML
|
19
24
|
attr_accessor :response
|
20
|
-
|
25
|
+
|
21
26
|
def initialize(response)
|
22
27
|
self.raw = response.body
|
23
28
|
self.code = response.code
|
@@ -5,15 +5,15 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{ruby-notify-my-android}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.4.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Ken Pepple"]
|
12
|
-
s.date = %q{2011-04-
|
13
|
-
s.default_executable = %q{notify-my-
|
12
|
+
s.date = %q{2011-04-21}
|
13
|
+
s.default_executable = %q{notify-my-android}
|
14
14
|
s.description = %q{Send notifications to Android devices via the Notify My Android API. Details about the API are available at https://nma.usk.bz/api.php .}
|
15
15
|
s.email = %q{ken.pepple@rabbityard.com}
|
16
|
-
s.executables = ["notify-my-
|
16
|
+
s.executables = ["notify-my-android"]
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE.txt",
|
19
19
|
"README.rdoc"
|
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
|
|
25
25
|
"README.rdoc",
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
|
-
"bin/notify-my-
|
28
|
+
"bin/notify-my-android",
|
29
29
|
"lib/ruby-notify-my-android.rb",
|
30
30
|
"lib/ruby-notify-my-android/notification.rb",
|
31
31
|
"lib/ruby-notify-my-android/request.rb",
|
@@ -47,6 +47,7 @@ class TestRubyNotifyMyAndroid < Test::Unit::TestCase
|
|
47
47
|
assert_equal("799", result.response["remaining"])
|
48
48
|
assert_equal("200", result.response["code"])
|
49
49
|
assert_equal("60", result.response["resettimer"])
|
50
|
+
assert(result.succeeded?)
|
50
51
|
end
|
51
52
|
|
52
53
|
def test_should_verify_bad_but_valid_size_apikey
|
@@ -115,6 +116,7 @@ class TestRubyNotifyMyAndroid < Test::Unit::TestCase
|
|
115
116
|
def test_version
|
116
117
|
v = File.read(File.join(File.dirname(__FILE__), '..', 'VERSION'))
|
117
118
|
assert_equal(v, NMA.version)
|
119
|
+
assert_equal(NMA.version, NMA::VERSION)
|
118
120
|
end
|
119
121
|
|
120
122
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-notify-my-android
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 4
|
9
|
+
- 0
|
10
|
+
version: 0.4.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Ken Pepple
|
@@ -15,8 +15,8 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-04-
|
19
|
-
default_executable: notify-my-
|
18
|
+
date: 2011-04-21 00:00:00 -07:00
|
19
|
+
default_executable: notify-my-android
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
prerelease: false
|
@@ -111,7 +111,7 @@ dependencies:
|
|
111
111
|
description: Send notifications to Android devices via the Notify My Android API. Details about the API are available at https://nma.usk.bz/api.php .
|
112
112
|
email: ken.pepple@rabbityard.com
|
113
113
|
executables:
|
114
|
-
- notify-my-
|
114
|
+
- notify-my-android
|
115
115
|
extensions: []
|
116
116
|
|
117
117
|
extra_rdoc_files:
|
@@ -124,7 +124,7 @@ files:
|
|
124
124
|
- README.rdoc
|
125
125
|
- Rakefile
|
126
126
|
- VERSION
|
127
|
-
- bin/notify-my-
|
127
|
+
- bin/notify-my-android
|
128
128
|
- lib/ruby-notify-my-android.rb
|
129
129
|
- lib/ruby-notify-my-android/notification.rb
|
130
130
|
- lib/ruby-notify-my-android/request.rb
|
data/bin/notify-my-andoid
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
|
4
|
-
|
5
|
-
require 'ruby-notify-my-android'
|
6
|
-
require 'yaml'
|
7
|
-
|
8
|
-
# set defaults
|
9
|
-
options = { :apikey => nil,
|
10
|
-
:description => "test description",
|
11
|
-
:event => "test event",
|
12
|
-
:application => "NMA",
|
13
|
-
:priority => Priority::NORMAL }
|
14
|
-
|
15
|
-
# use first argument on command line as API key
|
16
|
-
options[:apikey] = ARGV[0]
|
17
|
-
|
18
|
-
# send notification
|
19
|
-
result = NMA.notify do |n|
|
20
|
-
n.apikey = options[:apikey]
|
21
|
-
n.priority = options[:priority]
|
22
|
-
n.application = options[:application]
|
23
|
-
n.event = options[:event]
|
24
|
-
n.description = options[:description]
|
25
|
-
n.url = options[:url]
|
26
|
-
end
|
27
|
-
|
28
|
-
# putput raw XML response
|
29
|
-
puts result.raw
|