alertify-rails 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,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/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in alertify-rails.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Rudolf Schmidt
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,29 @@
1
+ # Alertify::Rails
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'alertify-rails'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install alertify-rails
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'alertify/version'
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "alertify-rails"
8
+ gem.version = Alertify::Rails::VERSION
9
+ gem.authors = ["Rudolf Schmidt"]
10
+
11
+ gem.description = %q{Use Alertify.js with Rails 3}
12
+ gem.summary = %q{This gem provides the Alertify.js deiver for Rails 3 applications}
13
+ gem.homepage = ""
14
+
15
+ gem.files = `git ls-files`.split($/)
16
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
+ gem.require_paths = ["lib"]
19
+ end
@@ -0,0 +1,7 @@
1
+ require 'alertify/engine' if ::Rails.version >= '3.1'
2
+ require 'alertify/railtie'
3
+ require 'alertify/version'
4
+
5
+ module Alertify #:nodoc:
6
+ end
7
+
@@ -0,0 +1,5 @@
1
+ module Alertify
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
5
+
@@ -0,0 +1,12 @@
1
+ module Alertify
2
+
3
+ class Railtie < ::Rails::Railtie
4
+ config.before_configuration do
5
+ if config.action_view.javascript_expansions
6
+ config.action_view.javascript_expansions[:defaults] << 'alertify'
7
+ end
8
+ end
9
+ end
10
+
11
+ end
12
+
@@ -0,0 +1,7 @@
1
+ module Alertify
2
+ module Rails
3
+ VERSION = "0.0.1"
4
+
5
+ end
6
+ end
7
+
@@ -0,0 +1,393 @@
1
+ /**
2
+ * Alertify
3
+ * An unobtrusive customizable JavaScript notification system
4
+ *
5
+ * @author Fabien Doiron <fabien.doiron@gmail.com>
6
+ * @copyright Fabien Doiron 2012
7
+ * @license The MIT License (MIT) <http://opensource.org/licenses/mit-license.php>
8
+ * @link http://www.github.com/fabien-d
9
+ * @module Alertify
10
+ * @version 0.1a1
11
+ */
12
+
13
+ ;(function( window, undefined ) {
14
+
15
+ var
16
+ // Use the correct document accordingly with window argument (sandbox)
17
+ document = window.document,
18
+
19
+ // The ready event handler and self cleanup method
20
+ DOMContentLoaded = function() {
21
+ if ( document.addEventListener ) {
22
+ document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
23
+
24
+ window.alertify = new Alertify();
25
+ } else if ( document.readyState === "complete" ) {
26
+ // we're here because readyState === "complete" in oldIE
27
+ // which is good enough for us to call the dom ready!
28
+ document.detachEvent( "onreadystatechange", DOMContentLoaded );
29
+
30
+ window.alertify = new Alertify();
31
+ }
32
+ },
33
+
34
+ // sandboxed Alertify
35
+ Alertify = function () {
36
+
37
+ var init, addListeners, bind, unbind, build, close, extend, hide, notify, setup, alert, confirm, log, prompt,
38
+ $, cover, element, logElement,
39
+ dialogs = {},
40
+ delay = 5000,
41
+ keys = {},
42
+ labels = {},
43
+ queue = [],
44
+ isopen = false;
45
+
46
+ keys = {
47
+ ENTER : 13,
48
+ ESC : 27
49
+ };
50
+
51
+ labels = {
52
+ ok : "OK",
53
+ cancel : "Cancel"
54
+ };
55
+
56
+ dialogs = {
57
+ buttons : {
58
+ holder : "<nav class=\"alertify-buttons\">{{buttons}}</nav>",
59
+ ok : "<a href=\"#\" class=\"alertify-button alertify-button-ok\" id=\"aOK\">{{ok}}</a>",
60
+ cancel : "<a href=\"#\" class=\"alertify-button alertify-button-cancel\" id=\"aCancel\">{{cancel}}</a>"
61
+ },
62
+ input : "<input type=\"text\" class=\"alertify-text\" id=\"aText\">",
63
+ message : "<p class=\"alertify-message\">{{message}}</p>",
64
+ log : "<article class=\"alertify-log{{class}}\">{{message}}</article>"
65
+ };
66
+
67
+ /**
68
+ * Shorthand for document.getElementById()
69
+ *
70
+ * @param {String} id A specific element ID
71
+
72
+ * @return {Object} HTML element
73
+ */
74
+ $ = function (id) {
75
+ return document.getElementById(id);
76
+ };
77
+
78
+ /**
79
+ * Initialize Alertify
80
+ * Create the 2 main elements
81
+ *
82
+ * @return {undefined}
83
+ */
84
+ init = function () {
85
+ // ensure legacy browsers support html5 tags
86
+ document.createElement("nav");
87
+ document.createElement("article");
88
+ document.createElement("section");
89
+ // cover
90
+ cover = document.createElement("div");
91
+ cover.setAttribute("id", "alertifycover");
92
+ cover.className = "alertify-cover alertify-hidden";
93
+ document.body.appendChild(cover);
94
+ // main element
95
+ element = document.createElement("section");
96
+ element.setAttribute("id", "alertify");
97
+ element.className = "alertify alertify-hidden";
98
+ document.body.appendChild(element);
99
+ // main element
100
+ logElement = document.createElement("section");
101
+ logElement.setAttribute("id", "alertifylogs");
102
+ logElement.className = "alertify-logs";
103
+ document.body.appendChild(logElement);
104
+ };
105
+
106
+ /**
107
+ * Set the proper button click events
108
+ *
109
+ * @param {Function} fn [Optional] Callback function
110
+ *
111
+ * @return {undefined}
112
+ */
113
+ addListeners = function (fn) {
114
+ var btnOK = $("aOK") || undefined,
115
+ btnCancel = $("aCancel") || undefined,
116
+ input = $("aText") || undefined,
117
+ val = "",
118
+ ok, cancel, common, key;
119
+
120
+ // ok event handler
121
+ ok = function (event) {
122
+ common(event);
123
+ if (typeof input !== "undefined") val = input.value;
124
+ if (typeof fn === "function") fn(true, val);
125
+ if (typeof event.preventDefault !== "undefined") event.preventDefault();
126
+ };
127
+
128
+ // cancel event handler
129
+ cancel = function (event) {
130
+ common(event);
131
+ if (typeof fn === "function") fn(false);
132
+ if (typeof event.preventDefault !== "undefined") event.preventDefault();
133
+ };
134
+
135
+ // common event handler (keyup, ok and cancel)
136
+ common = function (event) {
137
+ hide();
138
+ unbind(document.body, "keyup", key);
139
+ };
140
+
141
+ // keyup handler
142
+ key = function (event) {
143
+ var keyCode = event.keyCode;
144
+ if (keyCode === keys.ENTER && typeof btnOK !== "undefined") ok(event);
145
+ else if (keyCode === keys.ESC && typeof btnCancel !== "undefined") cancel(event);
146
+ };
147
+
148
+ // handle OK click
149
+ if (typeof btnOK !== "undefined") bind(btnOK, "click", ok);
150
+ // handle Cancel click
151
+ if (typeof btnCancel !== "undefined") bind(btnCancel, "click", cancel);
152
+
153
+ // clear focus off activeElement element to ensure
154
+ // the ENTER key triggers the correct behaviour
155
+ // Firefox has an issue if this isn't done and the current
156
+ // focus is an anchor
157
+ document.activeElement.blur();
158
+ // listen for keys, OK => ENTER, Cancel => ESC
159
+ bind(document.body, "keyup", key);
160
+ };
161
+
162
+ /**
163
+ * Bind events to elements
164
+ *
165
+ * @param {Object} el HTML Object
166
+ * @param {Event} event Event to attach to element
167
+ * @param {Function} fn Callback function
168
+ *
169
+ * @return {undefined}
170
+ */
171
+ bind = function (el, event, fn) {
172
+ if (typeof el.addEventListener === "function") {
173
+ el.addEventListener(event, fn, false);
174
+ } else if (el.attachEvent) {
175
+ el.attachEvent("on" + event, fn);
176
+ }
177
+ };
178
+
179
+ /**
180
+ * Unbind events to elements
181
+ *
182
+ * @param {Object} el HTML Object
183
+ * @param {Event} event Event to detach to element
184
+ * @param {Function} fn Callback function
185
+ *
186
+ * @return {undefined}
187
+ */
188
+ unbind = function (el, event, fn) {
189
+ if (typeof el.removeEventListener === "function") {
190
+ el.removeEventListener(event, fn, false);
191
+ } else if (el.detachEvent) {
192
+ el.detachEvent("on" + event, fn);
193
+ }
194
+ };
195
+
196
+ /**
197
+ * Build the proper message box
198
+ *
199
+ * @param {Object} item Current object in the queue
200
+ * @return {String} An HTML string of the message box
201
+ */
202
+ build = function (item) {
203
+ var html = "",
204
+ type = item.type,
205
+ message = item.message;
206
+
207
+ html += "<div class=\"alertify-dialog\">";
208
+ html += "<article class=\"alertify-inner\">";
209
+ html += dialogs.message.replace("{{message}}", message);
210
+
211
+ if (type === "prompt") { html += dialogs.input; }
212
+
213
+ html += dialogs.buttons.holder;
214
+ html += "</article>";
215
+ html += "</div>";
216
+
217
+ switch (type) {
218
+ case "confirm":
219
+ case "prompt":
220
+ html = html.replace("{{buttons}}", dialogs.buttons.cancel + dialogs.buttons.ok);
221
+ html = html.replace("{{ok}}", labels.ok).replace("{{cancel}}", labels.cancel);
222
+ break;
223
+ case "alert":
224
+ html = html.replace("{{buttons}}", dialogs.buttons.ok);
225
+ html = html.replace("{{ok}}", labels.ok);
226
+ break;
227
+ default:
228
+ break;
229
+ }
230
+
231
+ element.className = "alertify alertify-show alertify-" + type;
232
+ cover.className = "alertify-cover";
233
+ return html;
234
+ };
235
+
236
+ /**
237
+ * Close the log messages
238
+ *
239
+ * @return {undefined}
240
+ */
241
+ close = function () {
242
+ setTimeout(function () {
243
+ var child = logElement.childNodes[logElement.childNodes.length - 1];
244
+ if (typeof child !== "undefined") logElement.removeChild(child);
245
+ }, delay);
246
+ };
247
+
248
+ /**
249
+ * Extend the log method to create custom methods
250
+ *
251
+ * @param {String} type Custom method name
252
+ * @return {Function}
253
+ */
254
+ extend = function (type) {
255
+ return function (message) { log(message, type); };
256
+ };
257
+
258
+ /**
259
+ * Add new log message
260
+ * If a type is passed, a class name "alertify-log-{type}" will get added.
261
+ * This allows for custom look and feel for various types of notifications.
262
+ *
263
+ * @param {String} message The message passed from the callee
264
+ * @param {String} type [Optional] Type of log message
265
+ *
266
+ * @return {undefined}
267
+ */
268
+ notify = function (message, type) {
269
+ var log = document.createElement("article");
270
+ log.className = "alertify-log" + ((typeof type === "string" && type !== "") ? " alertify-log-" + type : "");
271
+ log.innerHTML = message;
272
+ // prepend child
273
+ logElement.insertBefore(log, logElement.firstChild);
274
+ // triggers the CSS animation
275
+ setTimeout(function() { log.className = log.className + " alertify-log-show"; }, 50);
276
+ close();
277
+ };
278
+
279
+ /**
280
+ * Hide the dialog and rest to defaults
281
+ *
282
+ * @return {undefined}
283
+ */
284
+ hide = function () {
285
+ // remove reference from queue
286
+ queue.splice(0,1);
287
+ // if items remaining in the queue
288
+ if (queue.length > 0) setup();
289
+ else {
290
+ isopen = false;
291
+ element.className = "alertify alertify-hide alertify-hidden";
292
+ cover.className = "alertify-cover alertify-hidden";
293
+ }
294
+ };
295
+
296
+ /**
297
+ * Initiate all the required pieces for the dialog box
298
+ *
299
+ * @return {undefined}
300
+ */
301
+ setup = function () {
302
+ var item = queue[0];
303
+
304
+ isopen = true;
305
+ element.innerHTML = build(item);
306
+ addListeners(item.callback);
307
+ };
308
+
309
+ /**
310
+ * Create an alert dialog box
311
+ *
312
+ * @param {String} message The message passed from the callee
313
+ * @param {Function} fn [Optional] Callback function
314
+ *
315
+ * @return {Object}
316
+ */
317
+ alert = function (message, fn) {
318
+ queue.push({ type: "alert", message: message, callback: fn });
319
+ if (!isopen) setup();
320
+
321
+ return this;
322
+ };
323
+
324
+ /**
325
+ * Create a confirm dialog box
326
+ *
327
+ * @param {String} message The message passed from the callee
328
+ * @param {Function} fn [Optional] Callback function
329
+ *
330
+ * @return {Object}
331
+ */
332
+ confirm = function (message, fn) {
333
+ queue.push({ type: "confirm", message: message, callback: fn });
334
+ if (!isopen) setup();
335
+
336
+ return this;
337
+ };
338
+
339
+ /**
340
+ * Show a new log message box
341
+ *
342
+ * @param {String} message The message passed from the callee
343
+ * @param {String} type [Optional] Optional type of log message
344
+ *
345
+ * @return {Object}
346
+ */
347
+ log = function (message, type) {
348
+ notify(message, type);
349
+ return this;
350
+ };
351
+
352
+ /**
353
+ * Create a prompt dialog box
354
+ *
355
+ * @param {String} message The message passed from the function
356
+ * @param {Function} fn [Optional] Callback function
357
+ *
358
+ * @return {Object}
359
+ */
360
+ prompt = function (message, fn) {
361
+ queue.push({ type: "prompt", message: message, callback: fn });
362
+ if (!isopen) setup();
363
+
364
+ return this;
365
+ };
366
+
367
+ // Bootstrap
368
+ init();
369
+
370
+ return {
371
+ alert : alert,
372
+ confirm : confirm,
373
+ log : log,
374
+ prompt : prompt,
375
+ success : function (message) { log(message, "success"); },
376
+ error : function (message) { log(message, "error"); },
377
+ extend : extend,
378
+
379
+ labels : labels,
380
+ delay : delay
381
+ };
382
+ };
383
+
384
+ /*
385
+ * Trigger DOMContentLoaded function when DOM is ready
386
+ */
387
+ if (window.addEventListener) { // W3C standard
388
+ window.addEventListener('load', DOMContentLoaded, false);
389
+ } else if (window.attachEvent) { // Microsoft
390
+ window.attachEvent('onload', DOMContentLoaded);
391
+ };
392
+
393
+ })( window );
@@ -0,0 +1,155 @@
1
+ .alertify-show,
2
+ .alertify-log {
3
+ -webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1); /* older webkit */
4
+ -webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
5
+ -moz-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
6
+ -ms-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
7
+ -o-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
8
+ transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */
9
+ }
10
+ .alertify-hide {
11
+ -webkit-transition: all 250ms cubic-bezier(0.600, 0, 0.735, 0.045); /* older webkit */
12
+ -webkit-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
13
+ -moz-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
14
+ -ms-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
15
+ -o-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045);
16
+ transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */
17
+ }
18
+ .alertify-cover {
19
+ position: fixed; z-index: 99999;
20
+ top: 0; right: 0; bottom: 0; left: 0;
21
+ }
22
+ .alertify {
23
+ position: fixed; z-index: 99999;
24
+ top: 50px; left: 50%;
25
+ width: 550px;
26
+ margin-left: -275px;
27
+ }
28
+ .alertify-hidden {
29
+ top: -50px;
30
+ visibility: hidden;
31
+ }
32
+ .alertify-logs {
33
+ position: fixed;
34
+ z-index: 5000;
35
+ bottom: 10px;
36
+ right: 10px;
37
+ width: 300px;
38
+ }
39
+ .alertify-log {
40
+ display: block;
41
+ margin-top: 10px;
42
+ position: relative;
43
+ right: -300px;
44
+ }
45
+ .alertify-log-show {
46
+ right: 0;
47
+ }
48
+ .alertify-dialog {
49
+ padding: 25px;
50
+ }
51
+ .alertify-inner {
52
+ text-align: center;
53
+ }
54
+ .alertify-text {
55
+ margin-bottom: 15px;
56
+ width: 100%;
57
+ -webkit-box-sizing: border-box;
58
+ -moz-box-sizing: border-box;
59
+ box-sizing: border-box;
60
+ font-size: 100%;
61
+ }
62
+ .alertify-buttons {
63
+ }
64
+ .alertify-button {
65
+ display: inline-block;
66
+ cursor: pointer;
67
+ margin-left: 5px;
68
+ }
69
+
70
+ @media only screen and (max-width: 680px) {
71
+ .alertify,
72
+ .alertify-logs {
73
+ width: 90%;
74
+ -webkit-box-sizing: border-box;
75
+ -moz-box-sizing: border-box;
76
+ box-sizing: border-box;
77
+ }
78
+ .alertify {
79
+ left: 5%;
80
+ margin: 0;
81
+ }
82
+ }
83
+
84
+ /**
85
+ * Default Look and Feel
86
+ */
87
+ .alertify,
88
+ .alertify-log {
89
+ font-family: sans-serif;
90
+ }
91
+ .alertify {
92
+ background: #FFF;
93
+ border: 10px solid #333; /* browsers that don't support rgba */
94
+ border: 10px solid rgba(0,0,0,.7);
95
+ border-radius: 8px;
96
+ box-shadow: 0 3px 3px rgba(0,0,0,.3);
97
+ -webkit-background-clip: padding; /* Safari 4? Chrome 6? */
98
+ -moz-background-clip: padding; /* Firefox 3.6 */
99
+ background-clip: padding-box; /* Firefox 4, Safari 5, Opera 10, IE 9 */
100
+ }
101
+ .alertify-text {
102
+ border: 1px solid #CCC;
103
+ padding: 10px;
104
+ border-radius: 4px;
105
+ }
106
+ .alertify-button {
107
+ border-radius: 4px;
108
+ color: #FFF;
109
+ font-weight: bold;
110
+ padding: 6px 15px;
111
+ text-decoration: none;
112
+ text-shadow: 1px 1px 0 rgba(0,0,0,.5);
113
+ box-shadow: inset 0 1px 0 0 rgba(255,255,255,.5);
114
+ background-image: -webkit-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
115
+ background-image: -moz-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
116
+ background-image: -ms-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
117
+ background-image: -o-linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
118
+ background-image: linear-gradient(top, rgba(255,255,255,.3), rgba(255,255,255,0));
119
+ }
120
+ .alertify-button:hover,
121
+ .alertify-button:focus {
122
+ background-image: -webkit-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0));
123
+ background-image: -moz-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0));
124
+ background-image: -ms-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0));
125
+ background-image: -o-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0));
126
+ background-image: linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0));
127
+ }
128
+ .alertify-button:active {
129
+ position: relative;
130
+ top: 1px;
131
+ }
132
+ .alertify-button-cancel {
133
+ background-color: #FE1A00;
134
+ border: 1px solid #D83526;
135
+ }
136
+ .alertify-button-ok {
137
+ background-color: #5CB811;
138
+ border: 1px solid #3b7808;
139
+ }
140
+ .alertify-log {
141
+ background: #1F1F1F;
142
+ background: rgba(0,0,0,.9);
143
+ padding: 15px;
144
+ border-radius: 4px;
145
+ color: #FFF;
146
+ text-shadow: -1px -1px 0 rgba(0,0,0,.5);
147
+ }
148
+ .alertify-log-error {
149
+ background: #FE1A00;
150
+ background: rgba(254,26,0,.9);
151
+ }
152
+ .alertify-log-success {
153
+ background: #5CB811;
154
+ background: rgba(92,184,17,.9);
155
+ }
metadata ADDED
@@ -0,0 +1,56 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: alertify-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Rudolf Schmidt
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-29 00:00:00.000000000 Z
13
+ dependencies: []
14
+ description: Use Alertify.js with Rails 3
15
+ email:
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - .gitignore
21
+ - Gemfile
22
+ - LICENSE.txt
23
+ - README.md
24
+ - Rakefile
25
+ - alertify-rails.gemspec
26
+ - lib/alertify-rails.rb
27
+ - lib/alertify/engine.rb
28
+ - lib/alertify/railtie.rb
29
+ - lib/alertify/version.rb
30
+ - vendor/assets/javascripts/alertify.js
31
+ - vendor/assets/stylesheets/alertify.css
32
+ homepage: ''
33
+ licenses: []
34
+ post_install_message:
35
+ rdoc_options: []
36
+ require_paths:
37
+ - lib
38
+ required_ruby_version: !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ required_rubygems_version: !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ! '>='
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ requirements: []
51
+ rubyforge_project:
52
+ rubygems_version: 1.8.24
53
+ signing_key:
54
+ specification_version: 3
55
+ summary: This gem provides the Alertify.js deiver for Rails 3 applications
56
+ test_files: []