rails_db 1.5.0 → 1.6.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.
- checksums.yaml +4 -4
- data/Gemfile +0 -2
- data/Gemfile.lock +51 -58
- data/app/assets/javascripts/rails_db/application.js +5 -21
- data/app/assets/javascripts/rails_db/{vendor/jquery.js → jquery.js} +0 -0
- data/app/assets/javascripts/rails_db/rails-ujs.js +685 -0
- data/app/assets/stylesheets/rails_db/{app.scss → app.css} +2 -2
- data/lib/rails_db.rb +0 -1
- data/lib/rails_db/engine.rb +2 -3
- data/lib/rails_db/version.rb +1 -1
- data/rails_db.gemspec +0 -2
- data/test/dummy/db/rails_db.sqlite3 +0 -0
- data/test/dummy/db/schema.rb +52 -47
- data/test/standalone/Gemfile +0 -1
- data/test/standalone/Gemfile.lock +0 -5
- metadata +113 -167
- data/app/assets/images/rails_db/down_arrow.gif +0 -0
- data/app/assets/images/rails_db/up_arrow.gif +0 -0
- data/app/assets/javascripts/rails_db/foundation/foundation.abide.js +0 -426
- data/app/assets/javascripts/rails_db/foundation/foundation.accordion.js +0 -125
- data/app/assets/javascripts/rails_db/foundation/foundation.alert.js +0 -43
- data/app/assets/javascripts/rails_db/foundation/foundation.clearing.js +0 -586
- data/app/assets/javascripts/rails_db/foundation/foundation.dropdown.js +0 -468
- data/app/assets/javascripts/rails_db/foundation/foundation.equalizer.js +0 -104
- data/app/assets/javascripts/rails_db/foundation/foundation.interchange.js +0 -360
- data/app/assets/javascripts/rails_db/foundation/foundation.joyride.js +0 -935
- data/app/assets/javascripts/rails_db/foundation/foundation.js +0 -732
- data/app/assets/javascripts/rails_db/foundation/foundation.magellan.js +0 -214
- data/app/assets/javascripts/rails_db/foundation/foundation.offcanvas.js +0 -225
- data/app/assets/javascripts/rails_db/foundation/foundation.orbit.js +0 -476
- data/app/assets/javascripts/rails_db/foundation/foundation.reveal.js +0 -522
- data/app/assets/javascripts/rails_db/foundation/foundation.slider.js +0 -296
- data/app/assets/javascripts/rails_db/foundation/foundation.tab.js +0 -247
- data/app/assets/javascripts/rails_db/foundation/foundation.tooltip.js +0 -348
- data/app/assets/javascripts/rails_db/foundation/foundation.topbar.js +0 -458
- data/app/assets/javascripts/rails_db/vendor/fastclick.js +0 -8
- data/app/assets/javascripts/rails_db/vendor/jquery.cookie.js +0 -8
- data/app/assets/javascripts/rails_db/vendor/modernizr.js +0 -8
- data/app/assets/javascripts/rails_db/vendor/placeholder.js +0 -2
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/rails_db_dev.sqlite3 +0 -0
@@ -1,104 +0,0 @@
|
|
1
|
-
;(function ($, window, document, undefined) {
|
2
|
-
'use strict';
|
3
|
-
|
4
|
-
Foundation.libs.equalizer = {
|
5
|
-
name : 'equalizer',
|
6
|
-
|
7
|
-
version : '5.5.3',
|
8
|
-
|
9
|
-
settings : {
|
10
|
-
use_tallest : true,
|
11
|
-
before_height_change : $.noop,
|
12
|
-
after_height_change : $.noop,
|
13
|
-
equalize_on_stack : false,
|
14
|
-
act_on_hidden_el: false
|
15
|
-
},
|
16
|
-
|
17
|
-
init : function (scope, method, options) {
|
18
|
-
Foundation.inherit(this, 'image_loaded');
|
19
|
-
this.bindings(method, options);
|
20
|
-
this.reflow();
|
21
|
-
},
|
22
|
-
|
23
|
-
events : function () {
|
24
|
-
this.S(window).off('.equalizer').on('resize.fndtn.equalizer', function (e) {
|
25
|
-
this.reflow();
|
26
|
-
}.bind(this));
|
27
|
-
},
|
28
|
-
|
29
|
-
equalize : function (equalizer) {
|
30
|
-
var isStacked = false,
|
31
|
-
group = equalizer.data('equalizer'),
|
32
|
-
settings = equalizer.data(this.attr_name(true)+'-init') || this.settings,
|
33
|
-
vals,
|
34
|
-
firstTopOffset;
|
35
|
-
|
36
|
-
if (settings.act_on_hidden_el) {
|
37
|
-
vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]') : equalizer.find('['+this.attr_name()+'-watch]');
|
38
|
-
}
|
39
|
-
else {
|
40
|
-
vals = group ? equalizer.find('['+this.attr_name()+'-watch="'+group+'"]:visible') : equalizer.find('['+this.attr_name()+'-watch]:visible');
|
41
|
-
}
|
42
|
-
|
43
|
-
if (vals.length === 0) {
|
44
|
-
return;
|
45
|
-
}
|
46
|
-
|
47
|
-
settings.before_height_change();
|
48
|
-
equalizer.trigger('before-height-change.fndth.equalizer');
|
49
|
-
vals.height('inherit');
|
50
|
-
|
51
|
-
if (settings.equalize_on_stack === false) {
|
52
|
-
firstTopOffset = vals.first().offset().top;
|
53
|
-
vals.each(function () {
|
54
|
-
if ($(this).offset().top !== firstTopOffset) {
|
55
|
-
isStacked = true;
|
56
|
-
return false;
|
57
|
-
}
|
58
|
-
});
|
59
|
-
if (isStacked) {
|
60
|
-
return;
|
61
|
-
}
|
62
|
-
}
|
63
|
-
|
64
|
-
var heights = vals.map(function () { return $(this).outerHeight(false) }).get();
|
65
|
-
|
66
|
-
if (settings.use_tallest) {
|
67
|
-
var max = Math.max.apply(null, heights);
|
68
|
-
vals.css('height', max);
|
69
|
-
} else {
|
70
|
-
var min = Math.min.apply(null, heights);
|
71
|
-
vals.css('height', min);
|
72
|
-
}
|
73
|
-
|
74
|
-
settings.after_height_change();
|
75
|
-
equalizer.trigger('after-height-change.fndtn.equalizer');
|
76
|
-
},
|
77
|
-
|
78
|
-
reflow : function () {
|
79
|
-
var self = this;
|
80
|
-
|
81
|
-
this.S('[' + this.attr_name() + ']', this.scope).each(function () {
|
82
|
-
var $eq_target = $(this),
|
83
|
-
media_query = $eq_target.data('equalizer-mq'),
|
84
|
-
ignore_media_query = true;
|
85
|
-
|
86
|
-
if (media_query) {
|
87
|
-
media_query = 'is_' + media_query.replace(/-/g, '_');
|
88
|
-
if (Foundation.utils.hasOwnProperty(media_query)) {
|
89
|
-
ignore_media_query = false;
|
90
|
-
}
|
91
|
-
}
|
92
|
-
|
93
|
-
self.image_loaded(self.S('img', this), function () {
|
94
|
-
if (ignore_media_query || Foundation.utils[media_query]()) {
|
95
|
-
self.equalize($eq_target)
|
96
|
-
} else {
|
97
|
-
var vals = $eq_target.find('[' + self.attr_name() + '-watch]:visible');
|
98
|
-
vals.css('height', 'auto');
|
99
|
-
}
|
100
|
-
});
|
101
|
-
});
|
102
|
-
}
|
103
|
-
};
|
104
|
-
})(jQuery, window, window.document);
|
@@ -1,360 +0,0 @@
|
|
1
|
-
;(function ($, window, document, undefined) {
|
2
|
-
'use strict';
|
3
|
-
|
4
|
-
Foundation.libs.interchange = {
|
5
|
-
name : 'interchange',
|
6
|
-
|
7
|
-
version : '5.5.3',
|
8
|
-
|
9
|
-
cache : {},
|
10
|
-
|
11
|
-
images_loaded : false,
|
12
|
-
nodes_loaded : false,
|
13
|
-
|
14
|
-
settings : {
|
15
|
-
load_attr : 'interchange',
|
16
|
-
|
17
|
-
named_queries : {
|
18
|
-
'default' : 'only screen',
|
19
|
-
'small' : Foundation.media_queries['small'],
|
20
|
-
'small-only' : Foundation.media_queries['small-only'],
|
21
|
-
'medium' : Foundation.media_queries['medium'],
|
22
|
-
'medium-only' : Foundation.media_queries['medium-only'],
|
23
|
-
'large' : Foundation.media_queries['large'],
|
24
|
-
'large-only' : Foundation.media_queries['large-only'],
|
25
|
-
'xlarge' : Foundation.media_queries['xlarge'],
|
26
|
-
'xlarge-only' : Foundation.media_queries['xlarge-only'],
|
27
|
-
'xxlarge' : Foundation.media_queries['xxlarge'],
|
28
|
-
'landscape' : 'only screen and (orientation: landscape)',
|
29
|
-
'portrait' : 'only screen and (orientation: portrait)',
|
30
|
-
'retina' : 'only screen and (-webkit-min-device-pixel-ratio: 2),' +
|
31
|
-
'only screen and (min--moz-device-pixel-ratio: 2),' +
|
32
|
-
'only screen and (-o-min-device-pixel-ratio: 2/1),' +
|
33
|
-
'only screen and (min-device-pixel-ratio: 2),' +
|
34
|
-
'only screen and (min-resolution: 192dpi),' +
|
35
|
-
'only screen and (min-resolution: 2dppx)'
|
36
|
-
},
|
37
|
-
|
38
|
-
directives : {
|
39
|
-
replace : function (el, path, trigger) {
|
40
|
-
// The trigger argument, if called within the directive, fires
|
41
|
-
// an event named after the directive on the element, passing
|
42
|
-
// any parameters along to the event that you pass to trigger.
|
43
|
-
//
|
44
|
-
// ex. trigger(), trigger([a, b, c]), or trigger(a, b, c)
|
45
|
-
//
|
46
|
-
// This allows you to bind a callback like so:
|
47
|
-
// $('#interchangeContainer').on('replace', function (e, a, b, c) {
|
48
|
-
// console.log($(this).html(), a, b, c);
|
49
|
-
// });
|
50
|
-
|
51
|
-
if (el !== null && /IMG/.test(el[0].nodeName)) {
|
52
|
-
var orig_path = $.each(el, function(){this.src = path;});
|
53
|
-
// var orig_path = el[0].src;
|
54
|
-
|
55
|
-
if (new RegExp(path, 'i').test(orig_path)) {
|
56
|
-
return;
|
57
|
-
}
|
58
|
-
|
59
|
-
el.attr("src", path);
|
60
|
-
|
61
|
-
return trigger(el[0].src);
|
62
|
-
}
|
63
|
-
var last_path = el.data(this.data_attr + '-last-path'),
|
64
|
-
self = this;
|
65
|
-
|
66
|
-
if (last_path == path) {
|
67
|
-
return;
|
68
|
-
}
|
69
|
-
|
70
|
-
if (/\.(gif|jpg|jpeg|tiff|png)([?#].*)?/i.test(path)) {
|
71
|
-
$(el).css('background-image', 'url(' + path + ')');
|
72
|
-
el.data('interchange-last-path', path);
|
73
|
-
return trigger(path);
|
74
|
-
}
|
75
|
-
|
76
|
-
return $.get(path, function (response) {
|
77
|
-
el.html(response);
|
78
|
-
el.data(self.data_attr + '-last-path', path);
|
79
|
-
trigger();
|
80
|
-
});
|
81
|
-
|
82
|
-
}
|
83
|
-
}
|
84
|
-
},
|
85
|
-
|
86
|
-
init : function (scope, method, options) {
|
87
|
-
Foundation.inherit(this, 'throttle random_str');
|
88
|
-
|
89
|
-
this.data_attr = this.set_data_attr();
|
90
|
-
$.extend(true, this.settings, method, options);
|
91
|
-
this.bindings(method, options);
|
92
|
-
this.reflow();
|
93
|
-
},
|
94
|
-
|
95
|
-
get_media_hash : function () {
|
96
|
-
var mediaHash = '';
|
97
|
-
for (var queryName in this.settings.named_queries ) {
|
98
|
-
mediaHash += matchMedia(this.settings.named_queries[queryName]).matches.toString();
|
99
|
-
}
|
100
|
-
return mediaHash;
|
101
|
-
},
|
102
|
-
|
103
|
-
events : function () {
|
104
|
-
var self = this, prevMediaHash;
|
105
|
-
|
106
|
-
$(window)
|
107
|
-
.off('.interchange')
|
108
|
-
.on('resize.fndtn.interchange', self.throttle(function () {
|
109
|
-
var currMediaHash = self.get_media_hash();
|
110
|
-
if (currMediaHash !== prevMediaHash) {
|
111
|
-
self.resize();
|
112
|
-
}
|
113
|
-
prevMediaHash = currMediaHash;
|
114
|
-
}, 50));
|
115
|
-
|
116
|
-
return this;
|
117
|
-
},
|
118
|
-
|
119
|
-
resize : function () {
|
120
|
-
var cache = this.cache;
|
121
|
-
|
122
|
-
if (!this.images_loaded || !this.nodes_loaded) {
|
123
|
-
setTimeout($.proxy(this.resize, this), 50);
|
124
|
-
return;
|
125
|
-
}
|
126
|
-
|
127
|
-
for (var uuid in cache) {
|
128
|
-
if (cache.hasOwnProperty(uuid)) {
|
129
|
-
var passed = this.results(uuid, cache[uuid]);
|
130
|
-
if (passed) {
|
131
|
-
this.settings.directives[passed
|
132
|
-
.scenario[1]].call(this, passed.el, passed.scenario[0], (function (passed) {
|
133
|
-
if (arguments[0] instanceof Array) {
|
134
|
-
var args = arguments[0];
|
135
|
-
} else {
|
136
|
-
var args = Array.prototype.slice.call(arguments, 0);
|
137
|
-
}
|
138
|
-
|
139
|
-
return function() {
|
140
|
-
passed.el.trigger(passed.scenario[1], args);
|
141
|
-
}
|
142
|
-
}(passed)));
|
143
|
-
}
|
144
|
-
}
|
145
|
-
}
|
146
|
-
|
147
|
-
},
|
148
|
-
|
149
|
-
results : function (uuid, scenarios) {
|
150
|
-
var count = scenarios.length;
|
151
|
-
|
152
|
-
if (count > 0) {
|
153
|
-
var el = this.S('[' + this.add_namespace('data-uuid') + '="' + uuid + '"]');
|
154
|
-
|
155
|
-
while (count--) {
|
156
|
-
var mq, rule = scenarios[count][2];
|
157
|
-
if (this.settings.named_queries.hasOwnProperty(rule)) {
|
158
|
-
mq = matchMedia(this.settings.named_queries[rule]);
|
159
|
-
} else {
|
160
|
-
mq = matchMedia(rule);
|
161
|
-
}
|
162
|
-
if (mq.matches) {
|
163
|
-
return {el : el, scenario : scenarios[count]};
|
164
|
-
}
|
165
|
-
}
|
166
|
-
}
|
167
|
-
|
168
|
-
return false;
|
169
|
-
},
|
170
|
-
|
171
|
-
load : function (type, force_update) {
|
172
|
-
if (typeof this['cached_' + type] === 'undefined' || force_update) {
|
173
|
-
this['update_' + type]();
|
174
|
-
}
|
175
|
-
|
176
|
-
return this['cached_' + type];
|
177
|
-
},
|
178
|
-
|
179
|
-
update_images : function () {
|
180
|
-
var images = this.S('img[' + this.data_attr + ']'),
|
181
|
-
count = images.length,
|
182
|
-
i = count,
|
183
|
-
loaded_count = 0,
|
184
|
-
data_attr = this.data_attr;
|
185
|
-
|
186
|
-
this.cache = {};
|
187
|
-
this.cached_images = [];
|
188
|
-
this.images_loaded = (count === 0);
|
189
|
-
|
190
|
-
while (i--) {
|
191
|
-
loaded_count++;
|
192
|
-
if (images[i]) {
|
193
|
-
var str = images[i].getAttribute(data_attr) || '';
|
194
|
-
|
195
|
-
if (str.length > 0) {
|
196
|
-
this.cached_images.push(images[i]);
|
197
|
-
}
|
198
|
-
}
|
199
|
-
|
200
|
-
if (loaded_count === count) {
|
201
|
-
this.images_loaded = true;
|
202
|
-
this.enhance('images');
|
203
|
-
}
|
204
|
-
}
|
205
|
-
|
206
|
-
return this;
|
207
|
-
},
|
208
|
-
|
209
|
-
update_nodes : function () {
|
210
|
-
var nodes = this.S('[' + this.data_attr + ']').not('img'),
|
211
|
-
count = nodes.length,
|
212
|
-
i = count,
|
213
|
-
loaded_count = 0,
|
214
|
-
data_attr = this.data_attr;
|
215
|
-
|
216
|
-
this.cached_nodes = [];
|
217
|
-
this.nodes_loaded = (count === 0);
|
218
|
-
|
219
|
-
while (i--) {
|
220
|
-
loaded_count++;
|
221
|
-
var str = nodes[i].getAttribute(data_attr) || '';
|
222
|
-
|
223
|
-
if (str.length > 0) {
|
224
|
-
this.cached_nodes.push(nodes[i]);
|
225
|
-
}
|
226
|
-
|
227
|
-
if (loaded_count === count) {
|
228
|
-
this.nodes_loaded = true;
|
229
|
-
this.enhance('nodes');
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
return this;
|
234
|
-
},
|
235
|
-
|
236
|
-
enhance : function (type) {
|
237
|
-
var i = this['cached_' + type].length;
|
238
|
-
|
239
|
-
while (i--) {
|
240
|
-
this.object($(this['cached_' + type][i]));
|
241
|
-
}
|
242
|
-
|
243
|
-
return $(window).trigger('resize.fndtn.interchange');
|
244
|
-
},
|
245
|
-
|
246
|
-
convert_directive : function (directive) {
|
247
|
-
|
248
|
-
var trimmed = this.trim(directive);
|
249
|
-
|
250
|
-
if (trimmed.length > 0) {
|
251
|
-
return trimmed;
|
252
|
-
}
|
253
|
-
|
254
|
-
return 'replace';
|
255
|
-
},
|
256
|
-
|
257
|
-
parse_scenario : function (scenario) {
|
258
|
-
// This logic had to be made more complex since some users were using commas in the url path
|
259
|
-
// So we cannot simply just split on a comma
|
260
|
-
|
261
|
-
var directive_match = scenario[0].match(/(.+),\s*(\w+)\s*$/),
|
262
|
-
// getting the mq has gotten a bit complicated since we started accounting for several use cases
|
263
|
-
// of URLs. For now we'll continue to match these scenarios, but we may consider having these scenarios
|
264
|
-
// as nested objects or arrays in F6.
|
265
|
-
// regex: match everything before close parenthesis for mq
|
266
|
-
media_query = scenario[1].match(/(.*)\)/);
|
267
|
-
|
268
|
-
if (directive_match) {
|
269
|
-
var path = directive_match[1],
|
270
|
-
directive = directive_match[2];
|
271
|
-
|
272
|
-
} else {
|
273
|
-
var cached_split = scenario[0].split(/,\s*$/),
|
274
|
-
path = cached_split[0],
|
275
|
-
directive = '';
|
276
|
-
}
|
277
|
-
|
278
|
-
return [this.trim(path), this.convert_directive(directive), this.trim(media_query[1])];
|
279
|
-
},
|
280
|
-
|
281
|
-
object : function (el) {
|
282
|
-
var raw_arr = this.parse_data_attr(el),
|
283
|
-
scenarios = [],
|
284
|
-
i = raw_arr.length;
|
285
|
-
|
286
|
-
if (i > 0) {
|
287
|
-
while (i--) {
|
288
|
-
// split array between comma delimited content and mq
|
289
|
-
// regex: comma, optional space, open parenthesis
|
290
|
-
var scenario = raw_arr[i].split(/,\s?\(/);
|
291
|
-
|
292
|
-
if (scenario.length > 1) {
|
293
|
-
var params = this.parse_scenario(scenario);
|
294
|
-
scenarios.push(params);
|
295
|
-
}
|
296
|
-
}
|
297
|
-
}
|
298
|
-
|
299
|
-
return this.store(el, scenarios);
|
300
|
-
},
|
301
|
-
|
302
|
-
store : function (el, scenarios) {
|
303
|
-
var uuid = this.random_str(),
|
304
|
-
current_uuid = el.data(this.add_namespace('uuid', true));
|
305
|
-
|
306
|
-
if (this.cache[current_uuid]) {
|
307
|
-
return this.cache[current_uuid];
|
308
|
-
}
|
309
|
-
|
310
|
-
el.attr(this.add_namespace('data-uuid'), uuid);
|
311
|
-
return this.cache[uuid] = scenarios;
|
312
|
-
},
|
313
|
-
|
314
|
-
trim : function (str) {
|
315
|
-
|
316
|
-
if (typeof str === 'string') {
|
317
|
-
return $.trim(str);
|
318
|
-
}
|
319
|
-
|
320
|
-
return str;
|
321
|
-
},
|
322
|
-
|
323
|
-
set_data_attr : function (init) {
|
324
|
-
if (init) {
|
325
|
-
if (this.namespace.length > 0) {
|
326
|
-
return this.namespace + '-' + this.settings.load_attr;
|
327
|
-
}
|
328
|
-
|
329
|
-
return this.settings.load_attr;
|
330
|
-
}
|
331
|
-
|
332
|
-
if (this.namespace.length > 0) {
|
333
|
-
return 'data-' + this.namespace + '-' + this.settings.load_attr;
|
334
|
-
}
|
335
|
-
|
336
|
-
return 'data-' + this.settings.load_attr;
|
337
|
-
},
|
338
|
-
|
339
|
-
parse_data_attr : function (el) {
|
340
|
-
var raw = el.attr(this.attr_name()).split(/\[(.*?)\]/),
|
341
|
-
i = raw.length,
|
342
|
-
output = [];
|
343
|
-
|
344
|
-
while (i--) {
|
345
|
-
if (raw[i].replace(/[\W\d]+/, '').length > 4) {
|
346
|
-
output.push(raw[i]);
|
347
|
-
}
|
348
|
-
}
|
349
|
-
|
350
|
-
return output;
|
351
|
-
},
|
352
|
-
|
353
|
-
reflow : function () {
|
354
|
-
this.load('images', true);
|
355
|
-
this.load('nodes', true);
|
356
|
-
}
|
357
|
-
|
358
|
-
};
|
359
|
-
|
360
|
-
}(jQuery, window, window.document));
|