rails_wink 0.1.0

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,4 @@
1
+ /*
2
+ *= require_self
3
+ *= require_tree .
4
+ */
@@ -0,0 +1,202 @@
1
+ /*!
2
+ * Bootstrap v2.0.3
3
+ *
4
+ * Copyright 2012 Twitter, Inc
5
+ * Licensed under the Apache License v2.0
6
+ * http://www.apache.org/licenses/LICENSE-2.0
7
+ *
8
+ * Designed and built with all the love in the world @twitter by @mdo and @fat.
9
+ */
10
+ .clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";}
11
+ .clearfix:after{clear:both;}
12
+ .hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
13
+ .input-block-level{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;}
14
+ article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
15
+ audio,canvas,video{display:inline-block;*display:inline;*zoom:1;}
16
+ audio:not([controls]){display:none;}
17
+ html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;}
18
+ a:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
19
+ a:hover,a:active{outline:0;}
20
+ sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline;}
21
+ sup{top:-0.5em;}
22
+ sub{bottom:-0.25em;}
23
+ img{max-width:100%;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic;}
24
+ button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle;}
25
+ button,input{*overflow:visible;line-height:normal;}
26
+ button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0;}
27
+ button,input[type="button"],input[type="reset"],input[type="submit"]{cursor:pointer;-webkit-appearance:button;}
28
+ input[type="search"]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield;}
29
+ input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
30
+ textarea{overflow:auto;vertical-align:top;}
31
+ body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#333333;background-color:#ffffff;}
32
+ a{color:#0088cc;text-decoration:none;}
33
+ a:hover{color:#005580;text-decoration:underline;}
34
+ .container{margin-right:auto;margin-left:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
35
+ .container:after{clear:both;}
36
+ .container-fluid{padding-right:20px;padding-left:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
37
+ .container-fluid:after{clear:both;}
38
+ p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#999999;}
39
+ .lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
40
+ h1,h2,h3,h4,h5,h6{margin:0;font-family:inherit;font-weight:bold;color:inherit;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#999999;}
41
+ h1{font-size:30px;line-height:36px;}h1 small{font-size:18px;}
42
+ h2{font-size:24px;line-height:36px;}h2 small{font-size:18px;}
43
+ h3{font-size:18px;line-height:27px;}h3 small{font-size:14px;}
44
+ h4,h5,h6{line-height:18px;}
45
+ h4{font-size:14px;}h4 small{font-size:12px;}
46
+ h5{font-size:12px;}
47
+ h6{font-size:11px;color:#999999;text-transform:uppercase;}
48
+ .page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #eeeeee;}
49
+ .page-header h1{line-height:1;}
50
+ ul,ol{padding:0;margin:0 0 9px 25px;}
51
+ ul ul,ul ol,ol ol,ol ul{margin-bottom:0;}
52
+ ul{list-style:disc;}
53
+ ol{list-style:decimal;}
54
+ li{line-height:18px;}
55
+ ul.unstyled,ol.unstyled{margin-left:0;list-style:none;}
56
+ dl{margin-bottom:18px;}
57
+ dt,dd{line-height:18px;}
58
+ dt{font-weight:bold;line-height:17px;}
59
+ dd{margin-left:9px;}
60
+ .dl-horizontal dt{float:left;width:120px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
61
+ .dl-horizontal dd{margin-left:130px;}
62
+ hr{margin:18px 0;border:0;border-top:1px solid #eeeeee;border-bottom:1px solid #ffffff;}
63
+ strong{font-weight:bold;}
64
+ em{font-style:italic;}
65
+ .muted{color:#999999;}
66
+ abbr[title]{cursor:help;border-bottom:1px dotted #ddd;}
67
+ abbr.initialism{font-size:90%;text-transform:uppercase;}
68
+ blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #eeeeee;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
69
+ blockquote small{display:block;line-height:18px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
70
+ blockquote.pull-right{float:right;padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
71
+ q:before,q:after,blockquote:before,blockquote:after{content:"";}
72
+ address{display:block;margin-bottom:18px;font-style:normal;line-height:18px;}
73
+ small{font-size:100%;}
74
+ cite{font-style:normal;}
75
+ form{margin:0 0 18px;}
76
+ fieldset{padding:0;margin:0;border:0;}
77
+ legend{display:block;width:100%;padding:0;margin-bottom:27px;font-size:19.5px;line-height:36px;color:#333333;border:0;border-bottom:1px solid #eee;}legend small{font-size:13.5px;color:#999999;}
78
+ label,input,button,select,textarea{font-size:13px;font-weight:normal;line-height:18px;}
79
+ input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
80
+ label{display:block;margin-bottom:5px;color:#333333;}
81
+ input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#555555;background-color:#ffffff;border:1px solid #cccccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
82
+ .uneditable-textarea{width:auto;height:auto;}
83
+ label input,label textarea,label select{display:block;}
84
+ input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;cursor:pointer;background-color:transparent;border:0 \9;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
85
+ input[type="image"]{border:0;}
86
+ input[type="file"]{width:auto;padding:initial;line-height:initial;background-color:#ffffff;background-color:initial;border:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
87
+ input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;}
88
+ select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;}
89
+ input[type="file"]{line-height:18px \9;}
90
+ select{width:220px;background-color:#ffffff;}
91
+ select[multiple],select[size]{height:auto;}
92
+ input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
93
+ textarea{height:auto;}
94
+ input[type="hidden"]{display:none;}
95
+ .radio,.checkbox{min-height:18px;padding-left:18px;}
96
+ .radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px;}
97
+ .controls>.radio:first-child,.controls>.checkbox:first-child{padding-top:5px;}
98
+ .radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle;}
99
+ .radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
100
+ input,textarea{-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border linear 0.2s,box-shadow linear 0.2s;-moz-transition:border linear 0.2s,box-shadow linear 0.2s;-ms-transition:border linear 0.2s,box-shadow linear 0.2s;-o-transition:border linear 0.2s,box-shadow linear 0.2s;transition:border linear 0.2s,box-shadow linear 0.2s;}
101
+ input:focus,textarea:focus{border-color:rgba(82, 168, 236, 0.8);outline:0;outline:thin dotted \9;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6);}
102
+ input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
103
+ .input-mini{width:60px;}
104
+ .input-small{width:90px;}
105
+ .input-medium{width:150px;}
106
+ .input-large{width:210px;}
107
+ .input-xlarge{width:270px;}
108
+ .input-xxlarge{width:530px;}
109
+ input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input[class*="span"],.row-fluid input[class*="span"],.row-fluid select[class*="span"],.row-fluid textarea[class*="span"],.row-fluid .uneditable-input[class*="span"]{float:none;margin-left:0;}
110
+ input,textarea,.uneditable-input{margin-left:0;}
111
+ input.span12, textarea.span12, .uneditable-input.span12{width:930px;}
112
+ input.span11, textarea.span11, .uneditable-input.span11{width:850px;}
113
+ input.span10, textarea.span10, .uneditable-input.span10{width:770px;}
114
+ input.span9, textarea.span9, .uneditable-input.span9{width:690px;}
115
+ input.span8, textarea.span8, .uneditable-input.span8{width:610px;}
116
+ input.span7, textarea.span7, .uneditable-input.span7{width:530px;}
117
+ input.span6, textarea.span6, .uneditable-input.span6{width:450px;}
118
+ input.span5, textarea.span5, .uneditable-input.span5{width:370px;}
119
+ input.span4, textarea.span4, .uneditable-input.span4{width:290px;}
120
+ input.span3, textarea.span3, .uneditable-input.span3{width:210px;}
121
+ input.span2, textarea.span2, .uneditable-input.span2{width:130px;}
122
+ input.span1, textarea.span1, .uneditable-input.span1{width:50px;}
123
+ input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background-color:#eeeeee;border-color:#ddd;}
124
+ input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"][readonly],input[type="checkbox"][readonly]{background-color:transparent;}
125
+ .control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#c09853;}
126
+ .control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#c09853;border-color:#c09853;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#a47e3c;-webkit-box-shadow:0 0 6px #dbc59e;-moz-box-shadow:0 0 6px #dbc59e;box-shadow:0 0 6px #dbc59e;}
127
+ .control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#c09853;background-color:#fcf8e3;border-color:#c09853;}
128
+ .control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#b94a48;}
129
+ .control-group.error input,.control-group.error select,.control-group.error textarea{color:#b94a48;border-color:#b94a48;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#953b39;-webkit-box-shadow:0 0 6px #d59392;-moz-box-shadow:0 0 6px #d59392;box-shadow:0 0 6px #d59392;}
130
+ .control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#b94a48;background-color:#f2dede;border-color:#b94a48;}
131
+ .control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#468847;}
132
+ .control-group.success input,.control-group.success select,.control-group.success textarea{color:#468847;border-color:#468847;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#356635;-webkit-box-shadow:0 0 6px #7aba7b;-moz-box-shadow:0 0 6px #7aba7b;box-shadow:0 0 6px #7aba7b;}
133
+ .control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#468847;background-color:#dff0d8;border-color:#468847;}
134
+ input:focus:required:invalid,textarea:focus:required:invalid,select:focus:required:invalid{color:#b94a48;border-color:#ee5f5b;}input:focus:required:invalid:focus,textarea:focus:required:invalid:focus,select:focus:required:invalid:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;}
135
+ .form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;background-color:#f5f5f5;border-top:1px solid #ddd;*zoom:1;}.form-actions:before,.form-actions:after{display:table;content:"";}
136
+ .form-actions:after{clear:both;}
137
+ .uneditable-input{overflow:hidden;white-space:nowrap;cursor:not-allowed;background-color:#ffffff;border-color:#eee;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025);}
138
+ :-moz-placeholder{color:#999999;}
139
+ ::-webkit-input-placeholder{color:#999999;}
140
+ .help-block,.help-inline{color:#555555;}
141
+ .help-block{display:block;margin-bottom:9px;}
142
+ .help-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding-left:5px;}
143
+ .input-prepend,.input-append{margin-bottom:5px;}.input-prepend input,.input-append input,.input-prepend select,.input-append select,.input-prepend .uneditable-input,.input-append .uneditable-input{position:relative;margin-bottom:0;*margin-left:0;vertical-align:middle;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}.input-prepend input:focus,.input-append input:focus,.input-prepend select:focus,.input-append select:focus,.input-prepend .uneditable-input:focus,.input-append .uneditable-input:focus{z-index:2;}
144
+ .input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;}
145
+ .input-prepend .add-on,.input-append .add-on{display:inline-block;width:auto;height:18px;min-width:16px;padding:4px 5px;font-weight:normal;line-height:18px;text-align:center;text-shadow:0 1px 0 #ffffff;vertical-align:middle;background-color:#eeeeee;border:1px solid #ccc;}
146
+ .input-prepend .add-on,.input-append .add-on,.input-prepend .btn,.input-append .btn{margin-left:-1px;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
147
+ .input-prepend .active,.input-append .active{background-color:#a9dba9;border-color:#46a546;}
148
+ .input-prepend .add-on,.input-prepend .btn{margin-right:-1px;}
149
+ .input-prepend .add-on:first-child,.input-prepend .btn:first-child{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
150
+ .input-append input,.input-append select,.input-append .uneditable-input{-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
151
+ .input-append .uneditable-input{border-right-color:#ccc;border-left-color:#eee;}
152
+ .input-append .add-on:last-child,.input-append .btn:last-child{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
153
+ .input-prepend.input-append input,.input-prepend.input-append select,.input-prepend.input-append .uneditable-input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
154
+ .input-prepend.input-append .add-on:first-child,.input-prepend.input-append .btn:first-child{margin-right:-1px;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
155
+ .input-prepend.input-append .add-on:last-child,.input-prepend.input-append .btn:last-child{margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
156
+ .search-query{padding-right:14px;padding-right:4px \9;padding-left:14px;padding-left:4px \9;margin-bottom:0;-webkit-border-radius:14px;-moz-border-radius:14px;border-radius:14px;}
157
+ .form-search input,.form-inline input,.form-horizontal input,.form-search textarea,.form-inline textarea,.form-horizontal textarea,.form-search select,.form-inline select,.form-horizontal select,.form-search .help-inline,.form-inline .help-inline,.form-horizontal .help-inline,.form-search .uneditable-input,.form-inline .uneditable-input,.form-horizontal .uneditable-input,.form-search .input-prepend,.form-inline .input-prepend,.form-horizontal .input-prepend,.form-search .input-append,.form-inline .input-append,.form-horizontal .input-append{display:inline-block;*display:inline;*zoom:1;margin-bottom:0;}
158
+ .form-search .hide,.form-inline .hide,.form-horizontal .hide{display:none;}
159
+ .form-search label,.form-inline label{display:inline-block;}
160
+ .form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{margin-bottom:0;}
161
+ .form-search .radio,.form-search .checkbox,.form-inline .radio,.form-inline .checkbox{padding-left:0;margin-bottom:0;vertical-align:middle;}
162
+ .form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"],.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-right:3px;margin-left:0;}
163
+ .control-group{margin-bottom:9px;}
164
+ legend+.control-group{margin-top:18px;-webkit-margin-top-collapse:separate;}
165
+ .form-horizontal .control-group{margin-bottom:18px;*zoom:1;}.form-horizontal .control-group:before,.form-horizontal .control-group:after{display:table;content:"";}
166
+ .form-horizontal .control-group:after{clear:both;}
167
+ .form-horizontal .control-label{float:left;width:140px;padding-top:5px;text-align:right;}
168
+ .form-horizontal .controls{*display:inline-block;*padding-left:20px;margin-left:160px;*margin-left:0;}.form-horizontal .controls:first-child{*padding-left:160px;}
169
+ .form-horizontal .help-block{margin-top:9px;margin-bottom:0;}
170
+ .form-horizontal .form-actions{padding-left:160px;}
171
+ .btn{display:inline-block;*display:inline;*zoom:1;padding:4px 10px 4px;margin-bottom:0;font-size:13px;line-height:18px;*line-height:20px;color:#333333;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);vertical-align:middle;cursor:pointer;background-color:#f5f5f5;background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6);background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6);background-image:-o-linear-gradient(top, #ffffff, #e6e6e6);background-image:linear-gradient(top, #ffffff, #e6e6e6);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);border-color:#e6e6e6 #e6e6e6 #bfbfbf;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#e6e6e6;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border:1px solid #cccccc;*border:0;border-bottom-color:#b3b3b3;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;*margin-left:.3em;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05);}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e6e6e6;*background-color:#d9d9d9;}
172
+ .btn:active,.btn.active{background-color:#cccccc \9;}
173
+ .btn:first-child{*margin-left:0;}
174
+ .btn:hover{color:#333333;text-decoration:none;background-color:#e6e6e6;*background-color:#d9d9d9;background-position:0 -15px;-webkit-transition:background-position 0.1s linear;-moz-transition:background-position 0.1s linear;-ms-transition:background-position 0.1s linear;-o-transition:background-position 0.1s linear;transition:background-position 0.1s linear;}
175
+ .btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
176
+ .btn.active,.btn:active{background-color:#e6e6e6;background-color:#d9d9d9 \9;background-image:none;outline:0;-webkit-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);-moz-box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05);}
177
+ .btn.disabled,.btn[disabled]{cursor:default;background-color:#e6e6e6;background-image:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
178
+ .btn-large{padding:9px 14px;font-size:15px;line-height:normal;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
179
+ .btn-large [class^="icon-"]{margin-top:1px;}
180
+ .btn-small{padding:5px 9px;font-size:11px;line-height:16px;}
181
+ .btn-small [class^="icon-"]{margin-top:-1px;}
182
+ .btn-mini{padding:2px 6px;font-size:11px;line-height:14px;}
183
+ .btn-primary,.btn-primary:hover,.btn-warning,.btn-warning:hover,.btn-danger,.btn-danger:hover,.btn-success,.btn-success:hover,.btn-info,.btn-info:hover,.btn-inverse,.btn-inverse:hover{color:#ffffff;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
184
+ .btn-primary.active,.btn-warning.active,.btn-danger.active,.btn-success.active,.btn-info.active,.btn-inverse.active{color:rgba(255, 255, 255, 0.75);}
185
+ .btn{border-color:#ccc;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);}
186
+ .btn-primary{background-color:#0074cc;background-image:-moz-linear-gradient(top, #0088cc, #0055cc);background-image:-ms-linear-gradient(top, #0088cc, #0055cc);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));background-image:-webkit-linear-gradient(top, #0088cc, #0055cc);background-image:-o-linear-gradient(top, #0088cc, #0055cc);background-image:linear-gradient(top, #0088cc, #0055cc);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);border-color:#0055cc #0055cc #003580;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#0055cc;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#0055cc;*background-color:#004ab3;}
187
+ .btn-primary:active,.btn-primary.active{background-color:#004099 \9;}
188
+ .btn-warning{background-color:#faa732;background-image:-moz-linear-gradient(top, #fbb450, #f89406);background-image:-ms-linear-gradient(top, #fbb450, #f89406);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));background-image:-webkit-linear-gradient(top, #fbb450, #f89406);background-image:-o-linear-gradient(top, #fbb450, #f89406);background-image:linear-gradient(top, #fbb450, #f89406);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);border-color:#f89406 #f89406 #ad6704;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#f89406;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#f89406;*background-color:#df8505;}
189
+ .btn-warning:active,.btn-warning.active{background-color:#c67605 \9;}
190
+ .btn-danger{background-color:#da4f49;background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f);background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f);background-image:-o-linear-gradient(top, #ee5f5b, #bd362f);background-image:linear-gradient(top, #ee5f5b, #bd362f);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);border-color:#bd362f #bd362f #802420;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#bd362f;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#bd362f;*background-color:#a9302a;}
191
+ .btn-danger:active,.btn-danger.active{background-color:#942a25 \9;}
192
+ .btn-success{background-color:#5bb75b;background-image:-moz-linear-gradient(top, #62c462, #51a351);background-image:-ms-linear-gradient(top, #62c462, #51a351);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));background-image:-webkit-linear-gradient(top, #62c462, #51a351);background-image:-o-linear-gradient(top, #62c462, #51a351);background-image:linear-gradient(top, #62c462, #51a351);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);border-color:#51a351 #51a351 #387038;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#51a351;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#51a351;*background-color:#499249;}
193
+ .btn-success:active,.btn-success.active{background-color:#408140 \9;}
194
+ .btn-info{background-color:#49afcd;background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4);background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4);background-image:-o-linear-gradient(top, #5bc0de, #2f96b4);background-image:linear-gradient(top, #5bc0de, #2f96b4);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);border-color:#2f96b4 #2f96b4 #1f6377;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#2f96b4;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#2f96b4;*background-color:#2a85a0;}
195
+ .btn-info:active,.btn-info.active{background-color:#24748c \9;}
196
+ .btn-inverse{background-color:#414141;background-image:-moz-linear-gradient(top, #555555, #222222);background-image:-ms-linear-gradient(top, #555555, #222222);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));background-image:-webkit-linear-gradient(top, #555555, #222222);background-image:-o-linear-gradient(top, #555555, #222222);background-image:linear-gradient(top, #555555, #222222);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);border-color:#222222 #222222 #000000;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);*background-color:#222222;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);}.btn-inverse:hover,.btn-inverse:active,.btn-inverse.active,.btn-inverse.disabled,.btn-inverse[disabled]{background-color:#222222;*background-color:#151515;}
197
+ .btn-inverse:active,.btn-inverse.active{background-color:#080808 \9;}
198
+ button.btn,input[type="submit"].btn{*padding-top:2px;*padding-bottom:2px;}button.btn::-moz-focus-inner,input[type="submit"].btn::-moz-focus-inner{padding:0;border:0;}
199
+ button.btn.btn-large,input[type="submit"].btn.btn-large{*padding-top:7px;*padding-bottom:7px;}
200
+ button.btn.btn-small,input[type="submit"].btn.btn-small{*padding-top:3px;*padding-bottom:3px;}
201
+ button.btn.btn-mini,input[type="submit"].btn.btn-mini{*padding-top:1px;*padding-bottom:1px;}
202
+ @media (max-width:480px){.nav-collapse{-webkit-transform:translate3d(0, 0, 0);} .page-header h1 small{display:block;line-height:18px;} input[type="checkbox"],input[type="radio"]{border:1px solid #ccc;} .form-horizontal .control-group>label{float:none;width:auto;padding-top:0;text-align:left;} .form-horizontal .controls{margin-left:0;} .form-horizontal .control-list{padding-top:0;} .form-horizontal .form-actions{padding-left:10px;padding-right:10px;} .modal{position:absolute;top:10px;left:10px;right:10px;width:auto;margin:0;}.modal.fade.in{top:auto;} .modal-header .close{padding:10px;margin:-10px;} .carousel-caption{position:static;}}@media (max-width:767px){body{padding-left:20px;padding-right:20px;} .navbar-fixed-top,.navbar-fixed-bottom{margin-left:-20px;margin-right:-20px;} .container-fluid{padding:0;} .dl-horizontal dt{float:none;clear:none;width:auto;text-align:left;} .dl-horizontal dd{margin-left:0;} .container{width:auto;} .row-fluid{width:100%;} .row,.thumbnails{margin-left:0;} [class*="span"],.row-fluid [class*="span"]{float:none;display:block;width:auto;margin-left:0;} .input-large,.input-xlarge,.input-xxlarge,input[class*="span"],select[class*="span"],textarea[class*="span"],.uneditable-input{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;} .input-prepend input,.input-append input,.input-prepend input[class*="span"],.input-append input[class*="span"]{display:inline-block;width:auto;}}@media (min-width:768px) and (max-width:979px){.row{margin-left:-20px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:20px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:724px;} .span12{width:724px;} .span11{width:662px;} .span10{width:600px;} .span9{width:538px;} .span8{width:476px;} .span7{width:414px;} .span6{width:352px;} .span5{width:290px;} .span4{width:228px;} .span3{width:166px;} .span2{width:104px;} .span1{width:42px;} .offset12{margin-left:764px;} .offset11{margin-left:702px;} .offset10{margin-left:640px;} .offset9{margin-left:578px;} .offset8{margin-left:516px;} .offset7{margin-left:454px;} .offset6{margin-left:392px;} .offset5{margin-left:330px;} .offset4{margin-left:268px;} .offset3{margin-left:206px;} .offset2{margin-left:144px;} .offset1{margin-left:82px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.762430939%;*margin-left:2.709239449638298%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .span12{width:99.999999993%;*width:99.9468085036383%;} .row-fluid .span11{width:91.436464082%;*width:91.38327259263829%;} .row-fluid .span10{width:82.87292817100001%;*width:82.8197366816383%;} .row-fluid .span9{width:74.30939226%;*width:74.25620077063829%;} .row-fluid .span8{width:65.74585634900001%;*width:65.6926648596383%;} .row-fluid .span7{width:57.182320438000005%;*width:57.129128948638304%;} .row-fluid .span6{width:48.618784527%;*width:48.5655930376383%;} .row-fluid .span5{width:40.055248616%;*width:40.0020571266383%;} .row-fluid .span4{width:31.491712705%;*width:31.4385212156383%;} .row-fluid .span3{width:22.928176794%;*width:22.874985304638297%;} .row-fluid .span2{width:14.364640883%;*width:14.311449393638298%;} .row-fluid .span1{width:5.801104972%;*width:5.747913482638298%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:714px;} input.span11, textarea.span11, .uneditable-input.span11{width:652px;} input.span10, textarea.span10, .uneditable-input.span10{width:590px;} input.span9, textarea.span9, .uneditable-input.span9{width:528px;} input.span8, textarea.span8, .uneditable-input.span8{width:466px;} input.span7, textarea.span7, .uneditable-input.span7{width:404px;} input.span6, textarea.span6, .uneditable-input.span6{width:342px;} input.span5, textarea.span5, .uneditable-input.span5{width:280px;} input.span4, textarea.span4, .uneditable-input.span4{width:218px;} input.span3, textarea.span3, .uneditable-input.span3{width:156px;} input.span2, textarea.span2, .uneditable-input.span2{width:94px;} input.span1, textarea.span1, .uneditable-input.span1{width:32px;}}@media (min-width:1200px){.row{margin-left:-30px;*zoom:1;}.row:before,.row:after{display:table;content:"";} .row:after{clear:both;} [class*="span"]{float:left;margin-left:30px;} .container,.navbar-fixed-top .container,.navbar-fixed-bottom .container{width:1170px;} .span12{width:1170px;} .span11{width:1070px;} .span10{width:970px;} .span9{width:870px;} .span8{width:770px;} .span7{width:670px;} .span6{width:570px;} .span5{width:470px;} .span4{width:370px;} .span3{width:270px;} .span2{width:170px;} .span1{width:70px;} .offset12{margin-left:1230px;} .offset11{margin-left:1130px;} .offset10{margin-left:1030px;} .offset9{margin-left:930px;} .offset8{margin-left:830px;} .offset7{margin-left:730px;} .offset6{margin-left:630px;} .offset5{margin-left:530px;} .offset4{margin-left:430px;} .offset3{margin-left:330px;} .offset2{margin-left:230px;} .offset1{margin-left:130px;} .row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";} .row-fluid:after{clear:both;} .row-fluid [class*="span"]{display:block;width:100%;min-height:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;float:left;margin-left:2.564102564%;*margin-left:2.510911074638298%;} .row-fluid [class*="span"]:first-child{margin-left:0;} .row-fluid .span12{width:100%;*width:99.94680851063829%;} .row-fluid .span11{width:91.45299145300001%;*width:91.3997999636383%;} .row-fluid .span10{width:82.905982906%;*width:82.8527914166383%;} .row-fluid .span9{width:74.358974359%;*width:74.30578286963829%;} .row-fluid .span8{width:65.81196581200001%;*width:65.7587743226383%;} .row-fluid .span7{width:57.264957265%;*width:57.2117657756383%;} .row-fluid .span6{width:48.717948718%;*width:48.6647572286383%;} .row-fluid .span5{width:40.170940171000005%;*width:40.117748681638304%;} .row-fluid .span4{width:31.623931624%;*width:31.5707401346383%;} .row-fluid .span3{width:23.076923077%;*width:23.0237315876383%;} .row-fluid .span2{width:14.529914530000001%;*width:14.4767230406383%;} .row-fluid .span1{width:5.982905983%;*width:5.929714493638298%;} input,textarea,.uneditable-input{margin-left:0;} input.span12, textarea.span12, .uneditable-input.span12{width:1160px;} input.span11, textarea.span11, .uneditable-input.span11{width:1060px;} input.span10, textarea.span10, .uneditable-input.span10{width:960px;} input.span9, textarea.span9, .uneditable-input.span9{width:860px;} input.span8, textarea.span8, .uneditable-input.span8{width:760px;} input.span7, textarea.span7, .uneditable-input.span7{width:660px;} input.span6, textarea.span6, .uneditable-input.span6{width:560px;} input.span5, textarea.span5, .uneditable-input.span5{width:460px;} input.span4, textarea.span4, .uneditable-input.span4{width:360px;} input.span3, textarea.span3, .uneditable-input.span3{width:260px;} input.span2, textarea.span2, .uneditable-input.span2{width:160px;} input.span1, textarea.span1, .uneditable-input.span1{width:60px;} .thumbnails{margin-left:-30px;} .thumbnails>li{margin-left:30px;} .row-fluid .thumbnails{margin-left:0;}}
@@ -0,0 +1,4 @@
1
+ module RailsWink
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,28 @@
1
+ module RailsWink
2
+ class WinkController < ApplicationController
3
+ def index
4
+ @email = params[:email] || ''
5
+
6
+ render
7
+ end
8
+
9
+ def submit
10
+ email = params[:email_addr]
11
+ description = params[:desc]
12
+ jsobj = params[:json]
13
+
14
+ @msg = 'Thanks, that should help!'
15
+
16
+ if jsobj.nil?
17
+ @msg = "Unfortunately that didn't work."
18
+ end
19
+
20
+ if jsobj && jsobj = JSON.parse(jsobj)
21
+ WinkMailer.report(jsobj, description, email).deliver
22
+ end
23
+
24
+ render
25
+ end
26
+ end
27
+ end
28
+
@@ -0,0 +1,19 @@
1
+ module RailsWink
2
+ class WinkMailer < ActionMailer::Base
3
+ default :from => 'none@localhost'
4
+
5
+ def report(datadump, desc = '[No description provided]', from = nil)
6
+ @datadump = datadump
7
+ @desc = desc
8
+ @from = from
9
+
10
+ subject = ''.tap do |sub|
11
+ sub << "#{RailsWink.config[:prefix]}: " if RailsWink.config[:prefix]
12
+ sub << "Bug Report"
13
+ sub << " (from #{@from})" if !@from.nil?
14
+ end
15
+
16
+ mail :to => RailsWink.config[:to], :subject => subject, :from => @from
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>RailsWink</title>
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
7
+ <%= stylesheet_link_tag "rails_wink/application", :media => "all" %>
8
+ <%= javascript_include_tag "rails_wink/application" %>
9
+ <%= csrf_meta_tags %>
10
+ </head>
11
+ <body>
12
+ <div class="container">
13
+ <div class="page-header">
14
+ <h1>Report A Bug</h1>
15
+ </div>
16
+ <div>
17
+ <%= yield %>
18
+ </div>
19
+ </div>
20
+ </body>
21
+ </html>
@@ -0,0 +1,67 @@
1
+ <form method="POST" action="<%= url_for submit_url %>" class="form-horizontal">
2
+ <fieldset>
3
+ <div class="control-group">
4
+ <label class="control-label" for="email_addr">Your E-mail:</label>
5
+ <div class="controls">
6
+ <input type="email" id="email_addr" name="email_addr" class="input-xlarge" value="<%= @email %>">
7
+ <p class="help-block">Optional. This allows us to contact you for follow-up.</p>
8
+ </div>
9
+ </div>
10
+ <div class="control-group">
11
+ <label class="control-label" for="desc">Description:</label>
12
+ <div class="controls">
13
+ <textarea id="desc" class="input-xlarge" name="desc" rows="3"></textarea>
14
+ <p class="help-block">Please describe the bug you encountered.</p>
15
+ </div>
16
+ </div>
17
+ <div class="control-group">
18
+ <div class="controls">
19
+ <label class="checkbox">
20
+ <input type="checkbox" id="show_json">
21
+ Show me what information is being collected
22
+ </label>
23
+ </div>
24
+ </div>
25
+ <div class="control-group" id="json_data">
26
+ <div class="controls">
27
+ <textarea id="json" class="input-xlarge" name="json" rows="10" readonly></textarea>
28
+ </div>
29
+ </div>
30
+ <div class="form-actions">
31
+ <button type="submit" class="btn btn-primary">Submit Report</button>
32
+ <button class="btn">Cancel</button>
33
+ </div>
34
+ </fieldset>
35
+ </form>
36
+
37
+ <script>
38
+ $(function() {
39
+ var chk = $('#show_json');
40
+
41
+ chk.bind('change', function() {
42
+ $('#json_data').toggle();
43
+ });
44
+
45
+ if (!chk.is(':checked')) {
46
+ $('#json_data').hide();
47
+ }
48
+
49
+ var profile = {
50
+ screen: {},
51
+ browser: {},
52
+ modernizr: {}
53
+ };
54
+ profile.screen.width = window.screen.width;
55
+ profile.screen.height = window.screen.height;
56
+
57
+ profile.browser.userAgent = window.navigator.userAgent;
58
+ profile.browser.width = window.innerWidth;
59
+ profile.browser.height = window.innerHeight;
60
+ profile.browser.availWidth = window.screen.availWidth;
61
+ profile.browser.availHeight = window.screen.availHeight;
62
+
63
+ profile.modernizr = winkModernizr;
64
+
65
+ $('#json').val(JSON.stringify(profile, undefined, 4));
66
+ });
67
+ </script>
@@ -0,0 +1 @@
1
+ <h2><%= @msg %></h2>
@@ -0,0 +1,7 @@
1
+ <% if @from %>Submitted by: <%= @from %>
2
+
3
+ <% end %>Description of bug:
4
+ <%= @desc %>
5
+
6
+ Browser Capabilities:
7
+ <%= raw JSON.pretty_generate(@datadump) %>
data/config/routes.rb ADDED
@@ -0,0 +1,5 @@
1
+ RailsWink::Engine.routes.draw do
2
+ root :to => 'wink#index'
3
+
4
+ match '/submit', :to => 'wink#submit', :as => 'submit'
5
+ end
@@ -0,0 +1,13 @@
1
+ require 'rails/generators'
2
+
3
+ module RailsWink
4
+ module Generators
5
+ class ConfigGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../templates', __FILE__)
7
+
8
+ def wink_mailer_config
9
+ copy_file "wink.yml", "config/wink.yml"
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,2 @@
1
+ :to: support@example.com
2
+ :prefix: MyAppName
@@ -0,0 +1,11 @@
1
+ module RailsWink
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace RailsWink
4
+ engine_name :rails_wink
5
+
6
+ initializer 'rails_wink.parse_config' do |app|
7
+ ymlfile = YAML::load_file(Rails.root.join('config', 'wink.yml'))
8
+ RailsWink.parse_config ymlfile
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,3 @@
1
+ module RailsWink
2
+ VERSION = "0.1.0"
3
+ end
data/lib/rails_wink.rb ADDED
@@ -0,0 +1,13 @@
1
+ require "rails_wink/engine"
2
+
3
+ module RailsWink
4
+ @@config ||= {}
5
+
6
+ def self.config
7
+ return @@config
8
+ end
9
+
10
+ def self.parse_config(yamlfile)
11
+ @@config.merge(yamlfile)
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_wink
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Darryl Pogue
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.3
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.3
30
+ description: ! "Wink is a simple, open-source tool for web developers built to save
31
+ them time and to spare their clients the painful exercise of providing browser details
32
+ during debugging.\n\n Originally written for PHP by Denim&Steel, this is a Rails
33
+ 3 mountable engine that can be used as part of any Rails application.\n "
34
+ email:
35
+ - darryl@dpogue.ca
36
+ executables: []
37
+ extensions: []
38
+ extra_rdoc_files: []
39
+ files:
40
+ - app/mailers/rails_wink/wink_mailer.rb
41
+ - app/views/layouts/rails_wink/application.html.erb
42
+ - app/views/rails_wink/wink/index.html.erb
43
+ - app/views/rails_wink/wink/submit.html.erb
44
+ - app/views/rails_wink/wink_mailer/report.text.erb
45
+ - app/controllers/rails_wink/application_controller.rb
46
+ - app/controllers/rails_wink/wink_controller.rb
47
+ - app/assets/javascripts/rails_wink/wink_modernizr.js
48
+ - app/assets/javascripts/rails_wink/application.js
49
+ - app/assets/stylesheets/rails_wink/bootstrap.min.css
50
+ - app/assets/stylesheets/rails_wink/application.css
51
+ - config/routes.rb
52
+ - lib/generators/rails_wink/config_generator.rb
53
+ - lib/generators/rails_wink/templates/wink.yml
54
+ - lib/rails_wink.rb
55
+ - lib/rails_wink/engine.rb
56
+ - lib/rails_wink/version.rb
57
+ - LICENSE
58
+ - Rakefile
59
+ - README.md
60
+ homepage: https://github.com/dpogue/rails_wink
61
+ licenses: []
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ segments:
73
+ - 0
74
+ hash: 3061369675981755533
75
+ required_rubygems_version: !ruby/object:Gem::Requirement
76
+ none: false
77
+ requirements:
78
+ - - ! '>='
79
+ - !ruby/object:Gem::Version
80
+ version: '0'
81
+ segments:
82
+ - 0
83
+ hash: 3061369675981755533
84
+ requirements: []
85
+ rubyforge_project:
86
+ rubygems_version: 1.8.22
87
+ signing_key:
88
+ specification_version: 3
89
+ summary: Wink allows users to easily provide browser details for debugging.
90
+ test_files: []