{"id":15361969,"url":"https://github.com/tj/growl","last_synced_at":"2025-04-14T16:14:27.021Z","repository":{"id":541419,"uuid":"171181","full_name":"tj/growl","owner":"tj","description":"Ruby growlnotify 'bindings' (unobtrusive notification system)","archived":false,"fork":false,"pushed_at":"2015-01-22T23:16:40.000Z","size":247,"stargazers_count":146,"open_issues_count":1,"forks_count":18,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-14T16:14:19.960Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tj.png","metadata":{"files":{"readme":"README.rdoc","changelog":"History.rdoc","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2009-04-08T16:55:18.000Z","updated_at":"2024-07-19T21:29:00.000Z","dependencies_parsed_at":"2022-08-16T10:30:37.194Z","dependency_job_id":null,"html_url":"https://github.com/tj/growl","commit_stats":null,"previous_names":["visionmedia/growl"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tj%2Fgrowl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tj%2Fgrowl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tj%2Fgrowl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tj%2Fgrowl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tj","download_url":"https://codeload.github.com/tj/growl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248914115,"owners_count":21182359,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-01T12:57:45.016Z","updated_at":"2025-04-14T16:14:26.991Z","avatar_url":"https://github.com/tj.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"= Growl\n\nRuby growlnotify 'bindings'.\n\n== Examples\n\n  notification = Growl.new\n  notification.message = 'Hello World'\n  notification.sticky!\n  notification.icon = :jpeg\n  notification.run if Growl.installed?\n\n  # OR\n\n  Growl.notify {\n    self.message = 'Hello World'\n    self.icon = :jpeg\n    sticky!\n  }\n\n  # OR\n\n  Growl.notify do |n|\n    n.message = 'Hello World'\n    n.icon = :jpeg\n    n.stick!\n  end\n\n  # OR\n\n  Growl.notify 'Foo', :icon =\u003e :jpeg, :title =\u003e 'Growl'\n\n  # OR\n\n  include Growl\n  notify 'Email received', :sticky =\u003e true\n\n  # Convenience methods\n\n  notify_ok 'Deployment successful'\n  notify_info 'Email received'\n  notify_warning 'Merge required'\n  notify_error 'Failed to send email', :sticky =\u003e true\n\n== Turn a Growl notification into an active url\n\n  notification = Growl.new\n  notification.message = 'I am an active url.'\n  notification.url = 'http://www.example.com'\n  notification.sticky!\n  notification.run if Growl.installed?\n\nNow when you launch your notification the Growl message will be an active url\nto take you to http://www.example.com as if you had run from the command line:\n\n  growlnotify -m 'I am an active url' --url 'http://www.example.com'\n\n== Custom path to growlnotify\n\nIf needed you can set a path to the binary with:\n\n  Growl.bin_path = '~/my/path/to/growlnotify'\n\nright after you require the growl library.\n\n== Normalized Icons\n\nThe :icon option key is automatically normalized when you use any of the Growl#notify\nmethods, this removes the need to explicitly use :appIcon, :image, etc.\n\n  notify 'App icon', :icon =\u003e :Safari\n  notify 'Jpeg icon', :icon =\u003e :jpeg\n  notify 'Image icon', :icon =\u003e 'path/to/image.png'\n  notify 'Icns icon', :icon =\u003e 'path/to/icon.icns'\n  notify 'Path extname icon', :icon =\u003e 'foo.rb'\n\n== Features\n\n* Check availability with Growl.installed?\n* Check dependencies with Growl.version\n* Use images, icon paths, application icons, or file format icons\n* Sticky a notification making it appear until explicitly closed\n* Set notification priority\n* Convenience methods such as notify_ok, notify_warning, notify_error, and notify_info\n* Etc (consult growlnotify --help)\n\n== Installing growlnotify\n\nVisit http://growl.info/documentation.php for installation help.\nVisit http://growl.info/downloads for download.\n\n== Known Issues\n\nIt seems that growlnotify will essentially ignore or block excessive usage\nof the notifications at random. To prevent this you may need to do something like\nbelow if you are calling many in sequence:\n\n  notify 'Something'; sleep 0.2\n  notify_ok 'Updated'; sleep 0.2\n  notify_info 'You have new mail'; sleep 0.2\n  notify_warning 'Merged required'; sleep 0.2\n  notify_error 'Oh Noes!'; sleep 0.2\n\n== Contribute\n\nFork / send a pull request or submit a ticket at:\nhttp://github.com/visionmedia/growl/issues\n\n== License:\n\n(The MIT License)\n\nCopyright (c) 2009 TJ Holowaychuk \u003ctj@vision-media.ca\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, an d/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftj%2Fgrowl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftj%2Fgrowl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftj%2Fgrowl/lists"}