apprise-rails 1.5
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/.gitignore +5 -0
- data/Gemfile +4 -0
- data/LICENSE +1 -0
- data/README.md +21 -0
- data/Rakefile +1 -0
- data/apprise-rails.gemspec +22 -0
- data/lib/apprise-rails.rb +1 -0
- data/lib/apprise/rails.rb +2 -0
- data/lib/apprise/rails/engine.rb +6 -0
- data/lib/apprise/rails/version.rb +5 -0
- data/vendor/assets/javascripts/apprise-min.js +1 -0
- data/vendor/assets/javascripts/apprise.js +125 -0
- data/vendor/assets/stylesheets/apprise.css +103 -0
- metadata +91 -0
    
        data/.gitignore
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            Apprise was created by Daniel Raftery. The project page is http://thrivingkings.com/apprise/. The site claims as of January 25, 2012 that the project is licensed under a Creative Commons Attribution-ShareAlike 2.5 Generic License. (http://creativecommons.org/licenses/by-sa/2.5/legalcode)
         | 
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,21 @@ | |
| 1 | 
            +
            # apprise-rails
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            This gem provides the apprise project found at https://github.com/ThrivingKings/Apprise for the Rails asset pipeline (available since Rails 3.1).
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            To make use of this project add the following line to 'app/assets/javascripts/application.js':
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                //= require apprise
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            and add the following line to 'app/assets/stylesheets/application.css'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                *= require apprise
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            ### Installation
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            In your Gemfile, add this line:
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                gem "apprise-rails"
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            Then, run `bundle install`.
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            That's it!
         | 
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            require "bundler/gem_tasks"
         | 
| @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            +
            $:.push File.expand_path("../lib", __FILE__)
         | 
| 3 | 
            +
            require "apprise/rails/version"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Gem::Specification.new do |s|
         | 
| 6 | 
            +
              s.name        = "apprise-rails"
         | 
| 7 | 
            +
              s.version     = AppriseJS::Rails::VERSION
         | 
| 8 | 
            +
              s.authors     = ["John Colvin"]
         | 
| 9 | 
            +
              s.email       = ["colvin.john@gmail.com"]
         | 
| 10 | 
            +
              s.homepage    = "https://github.com/johncolvin/apprise-rails"
         | 
| 11 | 
            +
              s.summary     = %q{Use Apprise with Rails 3}
         | 
| 12 | 
            +
              s.description = %q{This provides Apprise for your Rails 3 application}
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              s.rubyforge_project = "apprise-rails"
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              s.add_dependency "railties", "~> 3.1"
         | 
| 17 | 
            +
             | 
| 18 | 
            +
              s.files         = `git ls-files`.split("\n")
         | 
| 19 | 
            +
              s.test_files    = `git ls-files -- {test,spec,features}/*`.split("\n")
         | 
| 20 | 
            +
              s.executables   = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
         | 
| 21 | 
            +
              s.require_paths = ["lib"]
         | 
| 22 | 
            +
            end
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            require 'apprise/rails'
         | 
| @@ -0,0 +1 @@ | |
| 1 | 
            +
            function apprise(a,b,c){var d={confirm:false,verify:false,input:false,animate:false,textOk:"Ok",textCancel:"Cancel",textYes:"Yes",textNo:"No",position:"center"};if(b){for(var e in d){if(typeof b[e]=="undefined")b[e]=d[e]}}var f=$(document).height(),g=$(document).width(),h=$('<div class="appriseOuter"></div>'),i=$('<div class="appriseOverlay" id="aOverlay"></div>'),j=$('<div class="appriseInner"></div>'),k=$('<div class="aButtons"></div>'),l=100;i.css({height:f,width:g}).appendTo("body").fadeIn(100,function(){$(this).css("filter","alpha(opacity=70)")});h.appendTo("body");j.append(a).appendTo(h);if(b){if(b["input"]){if(typeof b["input"]=="string"){j.append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" value="'+b["input"]+'" /></div>')}else{j.append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" /></div>')}$(".aTextbox").focus()}}j.append(k);if(b){if(b["confirm"]||b["input"]){k.append('<button value="ok">'+b["textOk"]+"</button>");k.append('<button value="cancel">'+b["textCancel"]+"</button>")}else if(b["verify"]){k.append('<button value="ok">'+b["textYes"]+"</button>");k.append('<button value="cancel">'+b["textNo"]+"</button>")}else{k.append('<button value="ok">'+b["textOk"]+"</button>")}}else{k.append('<button value="ok">Ok</button>')}h.css("left",($(window).width()-$(".appriseOuter").width())/2+$(window).scrollLeft()+"px");if(b){if(b["position"]&&b["position"]==="center"){l=(f-h.height())/2}if(b["animate"]){var m=b["animate"];if(isNaN(m)){m=400}h.css("top","-200px").show().animate({top:l},m)}else{h.css("top",l).fadeIn(200)}}else{h.css("top",l).fadeIn(200)}$(document).keydown(function(a){if(i.is(":visible")){if(a.keyCode==13){$('.aButtons > button[value="ok"]').click()}if(a.keyCode==27){$('.aButtons > button[value="cancel"]').click()}}});var n=$(".aTextbox").val();if(!n){n=false}$(".aTextbox").keyup(function(){n=$(this).val()});$(".aButtons > button").click(function(){i.remove();h.remove();if(c){$(this).text("");var a=$(this).attr("value");if(a=="ok"){if(b){if(b["input"]){c(n)}else{c(true)}}else{c(true)}}else if(a=="cancel"){c(false)}}})}
         | 
| @@ -0,0 +1,125 @@ | |
| 1 | 
            +
            // Apprise 1.5 by Daniel Raftery
         | 
| 2 | 
            +
            // http://thrivingkings.com/apprise
         | 
| 3 | 
            +
            //
         | 
| 4 | 
            +
            // Button text added by Adam Bezulski
         | 
| 5 | 
            +
            //
         | 
| 6 | 
            +
            // Cached jQuery variables, position center added by Josiah Ruddell
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            function apprise(string, args, callback) {
         | 
| 9 | 
            +
                var default_args =
         | 
| 10 | 
            +
            		{
         | 
| 11 | 
            +
            		    'confirm': false, 		// Ok and Cancel buttons
         | 
| 12 | 
            +
            		    'verify': false, 	// Yes and No buttons
         | 
| 13 | 
            +
            		    'input': false, 		// Text input (can be true or string for default text)
         | 
| 14 | 
            +
            		    'animate': false, 	// Groovy animation (can true or number, default is 400)
         | 
| 15 | 
            +
            		    'textOk': 'Ok', 	// Ok button default text
         | 
| 16 | 
            +
            		    'textCancel': 'Cancel', // Cancel button default text
         | 
| 17 | 
            +
            		    'textYes': 'Yes', 	// Yes button default text
         | 
| 18 | 
            +
            		    'textNo': 'No', 	// No button default text
         | 
| 19 | 
            +
            		    'position': 'center'// position center (y-axis) any other option will default to 100 top
         | 
| 20 | 
            +
            		}
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                if (args) {
         | 
| 23 | 
            +
                    for (var index in default_args)
         | 
| 24 | 
            +
                    { if (typeof args[index] == "undefined") args[index] = default_args[index]; }
         | 
| 25 | 
            +
                }
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                var aHeight = $(document).height(),
         | 
| 28 | 
            +
            		aWidth = $(document).width(),
         | 
| 29 | 
            +
            		apprise = $('<div class="appriseOuter"></div>'),
         | 
| 30 | 
            +
            		overlay = $('<div class="appriseOverlay" id="aOverlay"></div>'),
         | 
| 31 | 
            +
            		inner = $('<div class="appriseInner"></div>'),
         | 
| 32 | 
            +
                    buttons = $('<div class="aButtons"></div>'),
         | 
| 33 | 
            +
            		posTop = 100;
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                overlay.css({ height: aHeight, width: aWidth })
         | 
| 36 | 
            +
            		.appendTo('body')
         | 
| 37 | 
            +
                    .fadeIn(100,function(){$(this).css('filter','alpha(opacity=70)');});
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                apprise.appendTo('body');
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                inner.append(string)
         | 
| 42 | 
            +
            		.appendTo(apprise);
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                if (args) {
         | 
| 47 | 
            +
                    if (args['input']) {
         | 
| 48 | 
            +
                        if (typeof (args['input']) == 'string') {
         | 
| 49 | 
            +
                            inner.append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" value="' + args['input'] + '" /></div>');
         | 
| 50 | 
            +
                        }
         | 
| 51 | 
            +
                        else {
         | 
| 52 | 
            +
                            inner.append('<div class="aInput"><input type="text" class="aTextbox" t="aTextbox" /></div>');
         | 
| 53 | 
            +
                        }
         | 
| 54 | 
            +
                        $('.aTextbox').focus();
         | 
| 55 | 
            +
                    }
         | 
| 56 | 
            +
                }
         | 
| 57 | 
            +
             | 
| 58 | 
            +
                inner.append(buttons);
         | 
| 59 | 
            +
                if (args) {
         | 
| 60 | 
            +
                    if (args['confirm'] || args['input']) {
         | 
| 61 | 
            +
                        buttons.append('<button value="ok">' + args['textOk'] + '</button>');
         | 
| 62 | 
            +
                        buttons.append('<button value="cancel">' + args['textCancel'] + '</button>');
         | 
| 63 | 
            +
                    }
         | 
| 64 | 
            +
                    else if (args['verify']) {
         | 
| 65 | 
            +
                        buttons.append('<button value="ok">' + args['textYes'] + '</button>');
         | 
| 66 | 
            +
                        buttons.append('<button value="cancel">' + args['textNo'] + '</button>');
         | 
| 67 | 
            +
                    }
         | 
| 68 | 
            +
                    else { buttons.append('<button value="ok">' + args['textOk'] + '</button>'); }
         | 
| 69 | 
            +
                }
         | 
| 70 | 
            +
                else { buttons.append('<button value="ok">Ok</button>'); }
         | 
| 71 | 
            +
             | 
| 72 | 
            +
                // position after adding buttons
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                apprise.css("left", ($(window).width() - $('.appriseOuter').width()) / 2 + $(window).scrollLeft() + "px");
         | 
| 75 | 
            +
                // get center
         | 
| 76 | 
            +
                if (args) {
         | 
| 77 | 
            +
                    if (args['position'] && args['position'] === 'center') {
         | 
| 78 | 
            +
                        posTop = (aHeight - apprise.height()) / 2;
         | 
| 79 | 
            +
                    }
         | 
| 80 | 
            +
             | 
| 81 | 
            +
                    if (args['animate']) {
         | 
| 82 | 
            +
                        var aniSpeed = args['animate'];
         | 
| 83 | 
            +
                        if (isNaN(aniSpeed)) { aniSpeed = 400; }
         | 
| 84 | 
            +
                        apprise.css('top', '-200px').show().animate({ top: posTop }, aniSpeed);
         | 
| 85 | 
            +
                    }
         | 
| 86 | 
            +
                    else { apprise.css('top', posTop).fadeIn(200); }
         | 
| 87 | 
            +
                }
         | 
| 88 | 
            +
                else { apprise.css('top', posTop).fadeIn(200); }
         | 
| 89 | 
            +
             | 
| 90 | 
            +
             | 
| 91 | 
            +
                $(document).keydown(function (e) {
         | 
| 92 | 
            +
                    if (overlay.is(':visible')) {
         | 
| 93 | 
            +
                        if (e.keyCode == 13)
         | 
| 94 | 
            +
                        { $('.aButtons > button[value="ok"]').click(); }
         | 
| 95 | 
            +
                        if (e.keyCode == 27)
         | 
| 96 | 
            +
                        { $('.aButtons > button[value="cancel"]').click(); }
         | 
| 97 | 
            +
                    }
         | 
| 98 | 
            +
                });
         | 
| 99 | 
            +
             | 
| 100 | 
            +
                var aText = $('.aTextbox').val();
         | 
| 101 | 
            +
                if (!aText) { aText = false; }
         | 
| 102 | 
            +
                $('.aTextbox').keyup(function ()
         | 
| 103 | 
            +
                { aText = $(this).val(); });
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                $('.aButtons > button').click(function () {
         | 
| 106 | 
            +
                    overlay.remove();
         | 
| 107 | 
            +
                    apprise.remove();
         | 
| 108 | 
            +
                    if (callback) {
         | 
| 109 | 
            +
                        $(this).text("");
         | 
| 110 | 
            +
                        var wButton = $(this).attr("value");
         | 
| 111 | 
            +
                        if (wButton == 'ok') {
         | 
| 112 | 
            +
                            if (args) {
         | 
| 113 | 
            +
                                if (args['input']) { callback(aText); }
         | 
| 114 | 
            +
                                else { callback(true); }
         | 
| 115 | 
            +
                            }
         | 
| 116 | 
            +
                            else {
         | 
| 117 | 
            +
                                callback(true); 
         | 
| 118 | 
            +
                            }
         | 
| 119 | 
            +
                        }
         | 
| 120 | 
            +
                        else if (wButton == 'cancel') {
         | 
| 121 | 
            +
                            callback(false); 
         | 
| 122 | 
            +
                        }
         | 
| 123 | 
            +
                    }
         | 
| 124 | 
            +
                });
         | 
| 125 | 
            +
            }
         | 
| @@ -0,0 +1,103 @@ | |
| 1 | 
            +
            .appriseOverlay
         | 
| 2 | 
            +
            	{
         | 
| 3 | 
            +
            	position:fixed;
         | 
| 4 | 
            +
            	top:0;
         | 
| 5 | 
            +
            	left:0;
         | 
| 6 | 
            +
            	background:rgba(0, 0, 0, 0.3);
         | 
| 7 | 
            +
            	display:none;
         | 
| 8 | 
            +
            	}
         | 
| 9 | 
            +
            .appriseOuter
         | 
| 10 | 
            +
            	{
         | 
| 11 | 
            +
            	background:#eee;
         | 
| 12 | 
            +
            	border:1px solid #fff;
         | 
| 13 | 
            +
            	box-shadow:0px 3px 7px #333;
         | 
| 14 | 
            +
            	-moz-box-shadow:0px 3px 7px #333;
         | 
| 15 | 
            +
            	-webkit-box-shadow:0px 3px 7px #333;
         | 
| 16 | 
            +
            	-moz-border-radius:4px;
         | 
| 17 | 
            +
            	-webkit-border-radius:4px;
         | 
| 18 | 
            +
            	border-radius:4px;
         | 
| 19 | 
            +
            	-khtml-border-radius:4px;
         | 
| 20 | 
            +
            	position:absolute;
         | 
| 21 | 
            +
            	z-index:99999999;
         | 
| 22 | 
            +
            	min-width:200px;
         | 
| 23 | 
            +
            	min-height:50px;
         | 
| 24 | 
            +
            	max-width:75%;
         | 
| 25 | 
            +
            	position:fixed;
         | 
| 26 | 
            +
            	display:none;
         | 
| 27 | 
            +
            	}
         | 
| 28 | 
            +
            .appriseInner
         | 
| 29 | 
            +
            	{
         | 
| 30 | 
            +
            	padding:20px;
         | 
| 31 | 
            +
            	color:#333;
         | 
| 32 | 
            +
            	text-shadow:0px 1px 0px #fff;
         | 
| 33 | 
            +
            	}
         | 
| 34 | 
            +
            .appriseInner button
         | 
| 35 | 
            +
            	{
         | 
| 36 | 
            +
            	border:1px solid #bbb;
         | 
| 37 | 
            +
            	-moz-border-radius:3px;
         | 
| 38 | 
            +
            	-webkit-border-radius:3px;
         | 
| 39 | 
            +
            	border-radius:3px;
         | 
| 40 | 
            +
            	-khtml-border-radius:3px;
         | 
| 41 | 
            +
            	background: -moz-linear-gradient(100% 100% 90deg, #eee, #d5d5d5);
         | 
| 42 | 
            +
              	background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#eee), to(#d5d5d5));
         | 
| 43 | 
            +
              	background: -webkit-linear-gradient(#eee, #d5d5d5);
         | 
| 44 | 
            +
                background: -o-linear-gradient(#eee, #d5d5d5);
         | 
| 45 | 
            +
            	color:#232d3d;
         | 
| 46 | 
            +
            	font-size:12px;
         | 
| 47 | 
            +
            	font-weight:bold;
         | 
| 48 | 
            +
            	padding:4px 10px;
         | 
| 49 | 
            +
            	margin:0 3px;
         | 
| 50 | 
            +
            	text-shadow:0px 1px 0px #fff;
         | 
| 51 | 
            +
            	cursor:pointer;
         | 
| 52 | 
            +
            	box-shadow:0px 1px 2px #ccc;
         | 
| 53 | 
            +
            	-moz-box-shadow:0px 1px 2px #ccc;
         | 
| 54 | 
            +
            	-webkit-box-shadow:0px 1px 2px #ccc;
         | 
| 55 | 
            +
            	}
         | 
| 56 | 
            +
            .appriseInner button:hover
         | 
| 57 | 
            +
            	{
         | 
| 58 | 
            +
            	color:#d85054;
         | 
| 59 | 
            +
            	}
         | 
| 60 | 
            +
            .aButtons, .aInput
         | 
| 61 | 
            +
            	{
         | 
| 62 | 
            +
            	margin:20px 10px 0px 10px;
         | 
| 63 | 
            +
            	text-align:center;
         | 
| 64 | 
            +
            	}
         | 
| 65 | 
            +
            .aTextbox
         | 
| 66 | 
            +
            	{
         | 
| 67 | 
            +
            	border:1px solid #aaa;
         | 
| 68 | 
            +
            	-moz-border-radius:4px;
         | 
| 69 | 
            +
            	-webkit-border-radius:4px;
         | 
| 70 | 
            +
            	border-radius:4px;
         | 
| 71 | 
            +
            	-khtml-border-radius:4px;
         | 
| 72 | 
            +
            	box-shadow:0px 1px 0px #fff;
         | 
| 73 | 
            +
            	-moz-box-shadow:0px 1px 0px #fff;
         | 
| 74 | 
            +
            	-webkit-box-shadow:0px 1px 0px #fff;
         | 
| 75 | 
            +
            	width:180px;
         | 
| 76 | 
            +
            	font-size:12px;
         | 
| 77 | 
            +
            	font-weight:bold;
         | 
| 78 | 
            +
            	padding:5px 10px;
         | 
| 79 | 
            +
            	}
         | 
| 80 | 
            +
            .no-rgba  .appriseOverlay{
         | 
| 81 | 
            +
            	opacity: .30; 
         | 
| 82 | 
            +
            	filter: alpha(opacity = 30) !important; 
         | 
| 83 | 
            +
            	background: #000; 
         | 
| 84 | 
            +
            	zoom: 1;
         | 
| 85 | 
            +
            }
         | 
| 86 | 
            +
            .no-borderradius .appriseOuter{
         | 
| 87 | 
            +
            	border:1px solid #888;
         | 
| 88 | 
            +
            }
         | 
| 89 | 
            +
            .appriseOverlay {
         | 
| 90 | 
            +
            background-color:#222222;
         | 
| 91 | 
            +
            border:medium none;
         | 
| 92 | 
            +
            cursor:wait;
         | 
| 93 | 
            +
            height:100%;
         | 
| 94 | 
            +
            left:0;
         | 
| 95 | 
            +
            margin:0;
         | 
| 96 | 
            +
            padding:0;
         | 
| 97 | 
            +
            position:fixed;
         | 
| 98 | 
            +
            top:0;
         | 
| 99 | 
            +
            width:100%;
         | 
| 100 | 
            +
            z-index:1000;
         | 
| 101 | 
            +
            filter:alpha(opacity=70);
         | 
| 102 | 
            +
            opacity:0.70; 
         | 
| 103 | 
            +
            }
         | 
    
        metadata
    ADDED
    
    | @@ -0,0 +1,91 @@ | |
| 1 | 
            +
            --- !ruby/object:Gem::Specification 
         | 
| 2 | 
            +
            name: apprise-rails
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              hash: 5
         | 
| 5 | 
            +
              prerelease: 
         | 
| 6 | 
            +
              segments: 
         | 
| 7 | 
            +
              - 1
         | 
| 8 | 
            +
              - 5
         | 
| 9 | 
            +
              version: "1.5"
         | 
| 10 | 
            +
            platform: ruby
         | 
| 11 | 
            +
            authors: 
         | 
| 12 | 
            +
            - John Colvin
         | 
| 13 | 
            +
            autorequire: 
         | 
| 14 | 
            +
            bindir: bin
         | 
| 15 | 
            +
            cert_chain: []
         | 
| 16 | 
            +
             | 
| 17 | 
            +
            date: 2012-01-25 00:00:00 Z
         | 
| 18 | 
            +
            dependencies: 
         | 
| 19 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 20 | 
            +
              name: railties
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 23 | 
            +
                none: false
         | 
| 24 | 
            +
                requirements: 
         | 
| 25 | 
            +
                - - ~>
         | 
| 26 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 27 | 
            +
                    hash: 5
         | 
| 28 | 
            +
                    segments: 
         | 
| 29 | 
            +
                    - 3
         | 
| 30 | 
            +
                    - 1
         | 
| 31 | 
            +
                    version: "3.1"
         | 
| 32 | 
            +
              type: :runtime
         | 
| 33 | 
            +
              version_requirements: *id001
         | 
| 34 | 
            +
            description: This provides Apprise for your Rails 3 application
         | 
| 35 | 
            +
            email: 
         | 
| 36 | 
            +
            - colvin.john@gmail.com
         | 
| 37 | 
            +
            executables: []
         | 
| 38 | 
            +
             | 
| 39 | 
            +
            extensions: []
         | 
| 40 | 
            +
             | 
| 41 | 
            +
            extra_rdoc_files: []
         | 
| 42 | 
            +
             | 
| 43 | 
            +
            files: 
         | 
| 44 | 
            +
            - .gitignore
         | 
| 45 | 
            +
            - Gemfile
         | 
| 46 | 
            +
            - LICENSE
         | 
| 47 | 
            +
            - README.md
         | 
| 48 | 
            +
            - Rakefile
         | 
| 49 | 
            +
            - apprise-rails.gemspec
         | 
| 50 | 
            +
            - lib/apprise-rails.rb
         | 
| 51 | 
            +
            - lib/apprise/rails.rb
         | 
| 52 | 
            +
            - lib/apprise/rails/engine.rb
         | 
| 53 | 
            +
            - lib/apprise/rails/version.rb
         | 
| 54 | 
            +
            - vendor/assets/javascripts/apprise-min.js
         | 
| 55 | 
            +
            - vendor/assets/javascripts/apprise.js
         | 
| 56 | 
            +
            - vendor/assets/stylesheets/apprise.css
         | 
| 57 | 
            +
            homepage: https://github.com/johncolvin/apprise-rails
         | 
| 58 | 
            +
            licenses: []
         | 
| 59 | 
            +
             | 
| 60 | 
            +
            post_install_message: 
         | 
| 61 | 
            +
            rdoc_options: []
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            require_paths: 
         | 
| 64 | 
            +
            - lib
         | 
| 65 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 66 | 
            +
              none: false
         | 
| 67 | 
            +
              requirements: 
         | 
| 68 | 
            +
              - - ">="
         | 
| 69 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 70 | 
            +
                  hash: 3
         | 
| 71 | 
            +
                  segments: 
         | 
| 72 | 
            +
                  - 0
         | 
| 73 | 
            +
                  version: "0"
         | 
| 74 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 75 | 
            +
              none: false
         | 
| 76 | 
            +
              requirements: 
         | 
| 77 | 
            +
              - - ">="
         | 
| 78 | 
            +
                - !ruby/object:Gem::Version 
         | 
| 79 | 
            +
                  hash: 3
         | 
| 80 | 
            +
                  segments: 
         | 
| 81 | 
            +
                  - 0
         | 
| 82 | 
            +
                  version: "0"
         | 
| 83 | 
            +
            requirements: []
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            rubyforge_project: apprise-rails
         | 
| 86 | 
            +
            rubygems_version: 1.8.6
         | 
| 87 | 
            +
            signing_key: 
         | 
| 88 | 
            +
            specification_version: 3
         | 
| 89 | 
            +
            summary: Use Apprise with Rails 3
         | 
| 90 | 
            +
            test_files: []
         | 
| 91 | 
            +
             |