rspec-notify 0.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 966c01b96c2638280a65f231c1d985c14adc63f9
4
+ data.tar.gz: ae4169b379e9e2b6d0dbf5cab579c1948414f608
5
+ SHA512:
6
+ metadata.gz: 6cd40873108cbd9816a0e1062d36f81e2931a3c8fde376f529bf393e5f2f2c12718bfa17978d8e46c53ac0905bc110e81da739d62c7992f1e64436e6e0d7e649
7
+ data.tar.gz: 34abb1a14009fcc5dee73f9f04f71fc1be99a193a5a03e1ab298b437e4e54860cdb5a7c64997223f8f7bf416ac1662fed882b6259e0c231ce6c5a50808c1415f
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ -r ./lib/rspec/notify.rb
3
+ --format RSpec::Notify
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rspec-notify.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 yoshihara
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,34 @@
1
+ # Rspec::Notify
2
+
3
+ RSpec notification with Growl. (for OSX)
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'rspec-notify'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install rspec-notify
18
+
19
+ ## Usage
20
+
21
+ $ rspec --color -f RSpec::Notify your_spec.rb
22
+
23
+
24
+ ## Icons
25
+
26
+ The success/failure/pending are found in http://www.iconsdb.com/.
27
+
28
+ ## Contributing
29
+
30
+ 1. Fork it
31
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
32
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
33
+ 4. Push to the branch (`git push origin my-new-feature`)
34
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,22 @@
1
+ iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAADmElEQVRoge2Z
2
+ P27bShCHvyEsIseQb7JI8ZIgCIwUr/EZFPgCVCVeQIguEKQOgrSuWL3CFwiQ
3
+ RmzTGa8K5MDzCu6KlML9RzlAHqCfIHMgicOZ3W93Z9dw1llnnfW/0tbMitaU
4
+ v8V3a8oi956sG7ZmdiHIR4XV1sxynxXxXS6AL1szy2qdi/QHzC4E+aBwLSgg
5
+ AMu8MMfVmnKhsFa0EORTa8q/583uR8q9kvKjrSkvQD8A1+4mm0INspw3uxOD
6
+ 1/dHH98KcpWSRDQB1/LY4I+lUIMuL5uHtIgPfJcLgTXjKN8qXF1GkgiOgT54
7
+ vXbh6uDa9YJWgqxyg2875teKFrr3516g6F8Cn1tTPgv58fZAa8pC0Y8gv7S8
8
+ Q2hodziRhJNl/hgbj/RWkDfzZjfqONAD+gjyVVC6Nzib/We9DVopuopNsVsz
9
+ W4Cuj336bOAb8NPnz5vAvHkAtAY5mGnUdpqO2AIV4MWpNeVCkDVI4e5j4OPY
10
+ VmQjyM282T36fCbNQq2ZVTrgfAyhoT2GUx42ILAB3sWQTF3IamAZQiiEUz42
11
+ ugFuUsZTUg/YIBCkUljJfjYSQjZIDXxnP1WqQw2frbCRLngvNpMScGpNWQGr
12
+ EELHdqpSsRkquZQYqO7ai4MxEbbjaSps6AZsVjDZ1d+82SFIDbIMzUjO7q+n
13
+ zTY+ZSM0VCpOkQCysRlqCkJDJeL0tNgMlY3QUCk49denw2aokxKALgng/hCY
14
+ Y3hcidbbAveKnhQ8nDgGwC1SsgYKz6rslaI1MKkUdzqpByL1vNVxAd7bgkwq
15
+ xYea3ANuJ5VQF0UXOkFqnbgpmpRADJuhnfqAqThlI5SGzWFo3d9fERraU3HK
16
+ 6oFUbHrHsgG+K7qK/XYqTjnHKgtgnZqzohuBGzdVutaN101U9nlJSSQl4Dbg
17
+ oEVKAtKvsI82mLr7RlfYotv20KgtSGVdRc+dotH02Ayr/Sg2o7VNa8rqqXGK
18
+ HassgLXs20jsI8bfXW3j30m5mcb5cS+/3e2xQ8eY3gS2piwEeY09t3Eh+CQQ
19
+ rW1sS9bAMmN2eg54z4aCCNlDpc+KvgwhFMIm4DsFp3+AV/Pm4V+fnyBC9mzy
20
+ LXDbOczHxqcEnO4UXoeCjybgkhDkqkviEKEUbHyK4HQHvLhsHu5jfpIXskOc
21
+ YAo2Ad97nEDuQJOCh/yV+JmiX4BvT7EZcbKzTCXIG80IfpJaU5ZT/hUU09bM
22
+ iJ1En3XWWWf9efoP0dYmGACaoyYAAAAASUVORK5CYII=
Binary file
@@ -0,0 +1,34 @@
1
+ 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
34
+ ESvkHy7B9ILcsuM9AAAAAElFTkSuQmCC
Binary file
@@ -0,0 +1,76 @@
1
+ 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
76
+ L9vL9uLsvwDCIyLctnDqbQAAAABJRU5ErkJggg==
Binary file
@@ -0,0 +1,40 @@
1
+ require 'ruby-growl'
2
+ require 'rspec/core/formatters/progress_formatter'
3
+
4
+ module RSpec
5
+ class Notify < RSpec::Core::Formatters::ProgressFormatter
6
+ def initalize
7
+ @summary = ""
8
+ end
9
+
10
+ def colorise_summary(summary)
11
+ super
12
+ @summary = summary
13
+ end
14
+
15
+ def dump_summary(duration, example_count, failure_count, pending_count)
16
+ super
17
+ success_count = example_count - failure_count
18
+ icon = read_icon(success_count, failure_count, pending_count)
19
+
20
+ title = "#{(success_count / example_count.to_f * 100).round(2)}% passed"
21
+ g = Growl.new "localhost", "rspec-growl"
22
+ g.add_notification("notification", "rspec Notification", icon)
23
+ g.notify "notification", title, @summary
24
+ end
25
+
26
+ private
27
+
28
+ def read_icon(success, failure, pending)
29
+ icon_path = File.join(File.dirname(__FILE__), "..", "..", "icons")
30
+ if failure > 0
31
+ icon_name = "failure"
32
+ elsif pending > 0
33
+ icon_name = "pending"
34
+ else
35
+ icon_name = "success"
36
+ end
37
+ File.read(File.join(icon_path, "#{icon_name}.icon")).unpack("m").first
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,5 @@
1
+ module Rspec
2
+ module Notify
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ base_dir = File.dirname(__FILE__)
2
+ icons_dir = File.join(base_dir, "..", "icons")
3
+ icons = Dir.glob(File.join(icons_dir, "*.png"))
4
+
5
+ icons.each do |icon|
6
+ icon_file = File.read(icon)
7
+ File.open(File.join(icons_dir, "#{File.basename(icon, '.png')}.icon"), "w") do |f|
8
+ f.puts [icon_file].pack("m")
9
+ end
10
+ end
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'rspec/notify/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "rspec-notify"
8
+ spec.version = Rspec::Notify::VERSION
9
+ spec.authors = ["yoshihara"]
10
+ spec.email = ["h.yoshihara@everyleaf.com"]
11
+ spec.description = "Notification for Rspec with Growl."
12
+ spec.summary = "Notification for Rspec with Growl."
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep("spec")
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency("ruby-growl")
22
+ spec.add_runtime_dependency("rspec")
23
+ spec.add_development_dependency("bundler", "~> 1.3")
24
+ spec.add_development_dependency("rake")
25
+ end
@@ -0,0 +1,14 @@
1
+ require "rspec"
2
+
3
+ class RSpecNotifySample
4
+ end
5
+
6
+ describe RSpecNotifySample do
7
+ it "success" do
8
+ expect("aaabb").to eq("a" * 3 + "b" * 2)
9
+ end
10
+
11
+ it "failure" do
12
+ expect("aaabb").to eq("a" * 3 + "b")
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ require "rspec"
2
+
3
+ class RSpecNotifySample
4
+ end
5
+
6
+ describe RSpecNotifySample do
7
+ it "success" do
8
+ expect("aaabb").to eq("a" * 3 + "b" * 2)
9
+ end
10
+
11
+ it "pending" do
12
+ pending
13
+ expect("aaabb").to eq("a" * 3 + "bb")
14
+ end
15
+ end
16
+
@@ -0,0 +1,10 @@
1
+ require "rspec"
2
+
3
+ class RSpecNotifySample
4
+ end
5
+
6
+ describe RSpecNotifySample do
7
+ it "success" do
8
+ expect("aaabb").to eq("a" * 3 + "b" * 2)
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,120 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rspec-notify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - yoshihara
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-11-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: ruby-growl
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.3'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.3'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Notification for Rspec with Growl.
70
+ email:
71
+ - h.yoshihara@everyleaf.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - .rspec
78
+ - Gemfile
79
+ - LICENSE.txt
80
+ - README.md
81
+ - Rakefile
82
+ - icons/failure.icon
83
+ - icons/failure.png
84
+ - icons/pending.icon
85
+ - icons/pending.png
86
+ - icons/success.icon
87
+ - icons/success.png
88
+ - lib/rspec/notify.rb
89
+ - lib/rspec/notify/version.rb
90
+ - misc/pack_icons.rb
91
+ - rspec-notify.gemspec
92
+ - samples/failure_spec.rb
93
+ - samples/pending_spec.rb
94
+ - samples/success_spec.rb
95
+ homepage: ''
96
+ licenses:
97
+ - MIT
98
+ metadata: {}
99
+ post_install_message:
100
+ rdoc_options: []
101
+ require_paths:
102
+ - lib
103
+ required_ruby_version: !ruby/object:Gem::Requirement
104
+ requirements:
105
+ - - '>='
106
+ - !ruby/object:Gem::Version
107
+ version: '0'
108
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - '>='
111
+ - !ruby/object:Gem::Version
112
+ version: '0'
113
+ requirements: []
114
+ rubyforge_project:
115
+ rubygems_version: 2.0.3
116
+ signing_key:
117
+ specification_version: 4
118
+ summary: Notification for Rspec with Growl.
119
+ test_files: []
120
+ has_rdoc: