growl_notify 0.0.1 → 0.0.3

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.
@@ -0,0 +1,9 @@
1
+ # Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :version => 2, :cli => '--color --format doc' do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+ watch('growl_notify.gemspec') { "spec" }
9
+ end
data/Rakefile CHANGED
@@ -1,2 +1,10 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
+
4
+ require 'rspec/core/rake_task'
5
+
6
+ desc 'Default: run specs.'
7
+ task :default => :spec
8
+
9
+ desc "Run specs"
10
+ RSpec::Core::RakeTask.new
data/Readme.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # GrowlNotify
2
2
 
3
- This gem is based on the rp-appscript bindings to applescript
3
+ This gem is based on the rb-appscript bindings to applescript
4
4
 
5
5
  Benefits over all other growl gems:
6
6
 
@@ -15,7 +15,7 @@ Benefits over all other growl gems:
15
15
  GrowlNotify.config do |config|
16
16
  config.notifications = ["Compass Application", "Someother Notification"]
17
17
  config.default_notifications = ["Compass Application"]
18
- config.application_name = "My Application" #this shoes up in the growl applications list in systems settings
18
+ config.application_name = "My Application" #this shows up in the growl applications list in systems settings
19
19
  end
20
20
 
21
21
  You can also set a globally scoped icon:
@@ -53,8 +53,11 @@ You can also set a globally scoped icon:
53
53
  6. application_name - This is set from configs but you can override it
54
54
  7. with_name - must me one of your set default notifications by default its set to the first one
55
55
 
56
+ #### Error Handling
57
+
58
+ If the growl application is not installed on the system `GrowlNotify` will throw a `GrowlNotFound` exception.
56
59
 
57
- ## Aurthor
60
+ ## Author
58
61
 
59
62
  GrowlNotify is written by [Scott Davis](http://sdavis.info)
60
63
 
@@ -1,19 +1,18 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  $:.push File.expand_path("../lib", __FILE__)
3
- require "growl_notify/version"
3
+ require "growl_notify"
4
4
 
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "growl_notify"
7
7
  s.version = GrowlNotify::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["Scott Davis"]
10
- s.email = ["jetviper21@gmail.com"]
11
- s.homepage = "https://github.com/jetviper21/growl_notify"
12
- s.summary = %q{Growl.info Library that uses applescipt bindings to interface with growl}
13
- s.description = <<-DESC
14
- This gem is based on the rp-appscript bindings to applescript
15
- Benefits over all other growl gems: The user doesn't need to do anything but install the gem - no growl settings need to be changed and growlnotify cli doesn't need to be installed
16
- DESC
10
+ s.email = ["me@sdavis.info"]
11
+ s.homepage = "https://github.com/scottdavis/growl_notify"
12
+ s.summary = %q{Growl gem for ruby based on the applescript api}
13
+ s.description = %q{Growl gem for ruby based on the applescript api}
14
+
15
+ s.rubyforge_project = "growl_notify"
17
16
 
18
17
  s.files = `git ls-files`.split("\n")
19
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -21,6 +20,8 @@ Gem::Specification.new do |s|
21
20
  s.require_paths = ["lib"]
22
21
  s.add_dependency 'rb-appscript'
23
22
  s.add_development_dependency 'rspec'
24
- s.add_development_dependency 'autotest'
23
+ s.add_development_dependency 'guard-rspec'
24
+ s.add_development_dependency 'mocha'
25
+
25
26
 
26
27
  end
@@ -1,7 +1,10 @@
1
1
  require 'appscript'
2
2
 
3
3
  class GrowlNotify
4
-
4
+ VERSION = "0.0.3"
5
+ PRE_1_3_APP = "GrowlHelperApp"
6
+ POST_1_3_APP = "Growl"
7
+ class GrowlNotFound < Exception; end
5
8
  class << self
6
9
  include Appscript
7
10
 
@@ -23,7 +26,26 @@ class GrowlNotify
23
26
  end
24
27
 
25
28
  def register
26
- app("GrowlHelperApp").register(:all_notifications => @notifications, :as_application => @application_name, :default_notifications => @default_notifications)
29
+ application.register(:all_notifications => @notifications, :as_application => @application_name, :default_notifications => @default_notifications)
30
+ end
31
+
32
+ def application
33
+ @application = pre1_3_app
34
+ @application ||= post1_3_app
35
+ raise GrowlNotFound if @application.nil?
36
+ @application
37
+ end
38
+
39
+ def pre1_3_app
40
+ app(PRE_1_3_APP)
41
+ rescue FindApp::ApplicationNotFoundError
42
+ nil
43
+ end
44
+
45
+ def post1_3_app
46
+ app(POST_1_3_APP)
47
+ rescue FindApp::ApplicationNotFoundError
48
+ nil
27
49
  end
28
50
 
29
51
  def send_notification(options= {})
@@ -33,7 +55,7 @@ class GrowlNotify
33
55
  if local_icon
34
56
  defaults.merge!(:image_from_location => local_icon)
35
57
  end
36
- app("GrowlHelperApp").notify(defaults.merge(options))
58
+ application.notify(defaults.merge(options))
37
59
  end
38
60
 
39
61
  def very_low(options={})
@@ -14,6 +14,23 @@ describe GrowlNotify do
14
14
  GrowlNotify.reset!
15
15
  end
16
16
 
17
+ context 'application not found' do
18
+ before do
19
+ GrowlNotify.stubs(:pre1_3_app).returns(nil)
20
+ GrowlNotify.stubs(:post1_3_app).returns(nil)
21
+ end
22
+
23
+ it "should raise correct error" do
24
+ lambda {
25
+ GrowlNotify.config do |config|
26
+ config.notifications = config.default_notifications = ["Compass Application"]
27
+ config.application_name = config.notifications.first
28
+ end
29
+ GrowlNotify.normal(:title => 'GrowlNotify Spec', :description => 'This is my "normal" message').should be_nil
30
+ }.should raise_error GrowlNotify::GrowlNotFound
31
+ end
32
+ end
33
+
17
34
  context 'default' do
18
35
  before do
19
36
  GrowlNotify.config do |config|
@@ -1 +1,5 @@
1
- require 'growl_notify'
1
+ require 'growl_notify'
2
+
3
+ RSpec.configure do |config|
4
+ config.mock_with :mocha
5
+ end
metadata CHANGED
@@ -1,122 +1,104 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: growl_notify
3
- version: !ruby/object:Gem::Version
4
- hash: 29
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 1
10
- version: 0.0.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Scott Davis
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-03-17 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-05 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: rb-appscript
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70213464064040 !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
23
+ prerelease: false
24
+ version_requirements: *70213464064040
25
+ - !ruby/object:Gem::Dependency
36
26
  name: rspec
27
+ requirement: &70213464063620 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
37
34
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
35
+ version_requirements: *70213464063620
36
+ - !ruby/object:Gem::Dependency
37
+ name: guard-rspec
38
+ requirement: &70213464063200 !ruby/object:Gem::Requirement
39
39
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
47
44
  type: :development
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: autotest
51
45
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
46
+ version_requirements: *70213464063200
47
+ - !ruby/object:Gem::Dependency
48
+ name: mocha
49
+ requirement: &70213464062780 !ruby/object:Gem::Requirement
53
50
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
61
55
  type: :development
62
- version_requirements: *id003
63
- description: " This gem is based on the rp-appscript bindings to applescript\n Benefits over all other growl gems: The user doesn't need to do anything but install the gem - no growl settings need to be changed and growlnotify cli doesn't need to be installed\n"
64
- email:
65
- - jetviper21@gmail.com
56
+ prerelease: false
57
+ version_requirements: *70213464062780
58
+ description: Growl gem for ruby based on the applescript api
59
+ email:
60
+ - me@sdavis.info
66
61
  executables: []
67
-
68
62
  extensions: []
69
-
70
63
  extra_rdoc_files: []
71
-
72
- files:
64
+ files:
73
65
  - .gitignore
74
66
  - .rspec
75
67
  - Gemfile
68
+ - Guardfile
76
69
  - LICENSE.txt
77
70
  - Rakefile
78
71
  - Readme.md
79
72
  - growl_notify.gemspec
80
73
  - lib/growl_notify.rb
81
- - lib/growl_notify/version.rb
82
74
  - spec/growl_icon.png
83
75
  - spec/growl_notify_spec.rb
84
76
  - spec/spec_helper.rb
85
- has_rdoc: true
86
- homepage: https://github.com/jetviper21/growl_notify
77
+ homepage: https://github.com/scottdavis/growl_notify
87
78
  licenses: []
88
-
89
79
  post_install_message:
90
80
  rdoc_options: []
91
-
92
- require_paths:
81
+ require_paths:
93
82
  - lib
94
- required_ruby_version: !ruby/object:Gem::Requirement
83
+ required_ruby_version: !ruby/object:Gem::Requirement
95
84
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- hash: 3
100
- segments:
101
- - 0
102
- version: "0"
103
- required_rubygems_version: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ! '>='
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ required_rubygems_version: !ruby/object:Gem::Requirement
104
90
  none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- hash: 3
109
- segments:
110
- - 0
111
- version: "0"
91
+ requirements:
92
+ - - ! '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
112
95
  requirements: []
113
-
114
- rubyforge_project:
115
- rubygems_version: 1.5.2
96
+ rubyforge_project: growl_notify
97
+ rubygems_version: 1.8.10
116
98
  signing_key:
117
99
  specification_version: 3
118
- summary: Growl.info Library that uses applescipt bindings to interface with growl
119
- test_files:
100
+ summary: Growl gem for ruby based on the applescript api
101
+ test_files:
120
102
  - spec/growl_icon.png
121
103
  - spec/growl_notify_spec.rb
122
104
  - spec/spec_helper.rb
@@ -1,3 +0,0 @@
1
- module GrowlNotify
2
- VERSION = "0.0.1"
3
- end