marxjs-rails 0.1.1 → 0.2.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.
- checksums.yaml +4 -4
- data/README.md +4 -2
- data/app/assets/javascripts/marx.js +67 -41
- data/app/assets/stylesheets/marx.css +5 -3
- data/lib/marxjs/rails/version.rb +1 -1
- metadata +15 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b6f79caca0be1c6f08059bb7c9c0317484559cd
|
4
|
+
data.tar.gz: e19f46b9f25005b5d49b66ece78785b6150fb1f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c0d6f3d65ab87283d777dee4be3174b652911d40b63f0fbd3fdf6187a8ae0086872c7fe919cc48a0ac44ab764b842bff66bdb206ebee41f8b5d1d8987359ff2
|
7
|
+
data.tar.gz: 37ad2189e9668c2fb2ef316369896b0e2f8959bfaade9dbd739900dbd7895911372c01c76bd2c19b6b9394909d6e881adcaafbec9c963ba2dbb48c5039e7f4ea
|
data/README.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
#
|
1
|
+
# marxjs-rails gem
|
2
2
|
|
3
|
-
|
3
|
+
Marx.js was created for developers building web applications with long forms. Marx.js is a plugin that gives the developer the ability to populate any and all the fields in their forms easily and with a small 10kb file.
|
4
|
+
|
5
|
+
Forms are populated with Marx Brother names, years of their movies and quotes from those movies.
|
4
6
|
|
5
7
|
## Installation
|
6
8
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
window.Marx = function(options) {
|
2
2
|
var _this = this;
|
3
|
-
return $.getJSON("http://marxjs.sparkmasterflex.com:9292/
|
3
|
+
return $.getJSON("http://marxjs.sparkmasterflex.com:9292/characters", function(data) {
|
4
4
|
_this.marx_json = data;
|
5
5
|
return _this.initialize(options);
|
6
6
|
});
|
@@ -34,7 +34,7 @@ $.extend(Marx.prototype, {
|
|
34
34
|
create_controls: function() {
|
35
35
|
var open_controls,
|
36
36
|
_this = this;
|
37
|
-
$('body').append("<div class=\"marx-js-controls " + this.settings.position + "\">\n <link rel=\"stylesheet\" href=\"/
|
37
|
+
$('body').append("<div class=\"marx-js-controls " + this.settings.position + "\">\n <link rel=\"stylesheet\" href=\"http://marxjs.sparkmasterflex.com:9292/marx.css\">\n</div>");
|
38
38
|
this.$el = $('.marx-js-controls');
|
39
39
|
open_controls = this.settings.controls !== 'toggle-all' ? "<a href='#open-controls' class='open-controls'>MarxJS</a>" : "<div class=\"open-controls\">\n <a href=\"#advanced-controls\" class=\"advanced-controls\" title=\"Show Advanced Controls\">Advanced Controls</a>\n <a href=\"#standard-controls\" class=\"standard-controls\" title=\"Show Standard Controls\">Standard Controls</a>\n <a href=\"#populate-whole-form\" class=\"populate-whole-form\" title=\"Populate Whole Form\">MarxJS</a>\n</div>";
|
40
40
|
this.$el.append(open_controls);
|
@@ -80,33 +80,50 @@ $.extend(Marx.prototype, {
|
|
80
80
|
return this.$el.find(el);
|
81
81
|
},
|
82
82
|
add_standard_controls: function() {
|
83
|
-
var standard,
|
83
|
+
var action, standard, _i, _len, _ref,
|
84
84
|
_this = this;
|
85
|
-
standard = "<div class=\"marx-standard-controls\">\n <h4>Populate Form Fields</h4>\n
|
85
|
+
standard = "<div class=\"marx-standard-controls\">\n <h4>Populate Form Fields</h4>\n</div>";
|
86
86
|
this.$('.open-controls').before(standard);
|
87
|
+
_ref = [['populate-whole-form', 'Populate Whole Form'], ['populate-textareas', 'Populate TextAreas'], ['populate-inputs', 'Populate Inputs'], ['populate-checkboxes', 'Populate Check Boxes'], ['populate-radios', 'Populate Radio Buttons'], ['populate-selects', 'Populate Select Boxes']];
|
88
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
89
|
+
action = _ref[_i];
|
90
|
+
$('.marx-standard-controls').append(this.build_action(action));
|
91
|
+
}
|
87
92
|
return this.$('.marx-standard-controls a').click(function(e) {
|
88
93
|
return _this.popluate_selected_fields(e);
|
89
94
|
});
|
90
95
|
},
|
91
96
|
add_advanced_controls: function() {
|
92
|
-
var advanced,
|
97
|
+
var action, advanced, _i, _len, _ref,
|
93
98
|
_this = this;
|
94
|
-
advanced = "<div class=\"marx-advanced-controls\">\n <h4>Advanced Options</h4>\n
|
99
|
+
advanced = "<div class=\"marx-advanced-controls\">\n <h4>Advanced Options</h4>\n</div>";
|
95
100
|
this.$('.open-controls').before(advanced);
|
101
|
+
_ref = [['clear-form', 'Clear Form'], ['populate-submit', 'Populate and Submit'], ['show-hidden', '<span data-text="Hide">Show</span> Hidden Fields'], ['expand-select', '<span data-text="Collapse">Expand</span> Select Boxes'], ['random-image', 'Download Random Image'], ['generate-ipsum', 'Generate Ipsum']];
|
102
|
+
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
103
|
+
action = _ref[_i];
|
104
|
+
$('.marx-advanced-controls').append(this.build_action(action));
|
105
|
+
}
|
96
106
|
if (this.settings.controls === 'toggle-advanced') {
|
97
|
-
this
|
98
|
-
this.$('.marx-standard-controls').append("<a href='#advanced' class='marx-toggle-advanced'>« Advanced</a>");
|
99
|
-
this.$('a.marx-toggle-advanced').click(function(e) {
|
100
|
-
var txt;
|
101
|
-
txt = $(e.target).hasClass('opened') ? "« Advanced" : "Close »";
|
102
|
-
_this.$(e.target).toggleClass('opened').html(txt);
|
103
|
-
return _this.$('.marx-advanced-controls').toggle();
|
104
|
-
});
|
107
|
+
this.set_toggle_advanced();
|
105
108
|
}
|
106
109
|
return this.$('.marx-advanced-controls a').click(function(e) {
|
107
110
|
return _this.advanced_actions(e);
|
108
111
|
});
|
109
112
|
},
|
113
|
+
build_action: function(action) {
|
114
|
+
return "<div class=\"marx-js-group\">\n <p>" + action[1] + "</p>\n <a href=\"#" + action[0] + "\" class=\"" + action[0] + "\">Go</a>\n</div>";
|
115
|
+
},
|
116
|
+
set_toggle_advanced: function() {
|
117
|
+
var _this = this;
|
118
|
+
this.$('.marx-advanced-controls').hide();
|
119
|
+
this.$('.marx-standard-controls').append("<a href='#advanced' class='marx-toggle-advanced'>« Advanced</a>");
|
120
|
+
return this.$('a.marx-toggle-advanced').click(function(e) {
|
121
|
+
var txt;
|
122
|
+
txt = $(e.target).hasClass('opened') ? "« Advanced" : "Close »";
|
123
|
+
_this.$(e.target).toggleClass('opened').html(txt);
|
124
|
+
return _this.$('.marx-advanced-controls').toggle();
|
125
|
+
});
|
126
|
+
},
|
110
127
|
/*=========================
|
111
128
|
POPULATE FORM METHODS
|
112
129
|
=========================
|
@@ -124,39 +141,43 @@ $.extend(Marx.prototype, {
|
|
124
141
|
var _this = this;
|
125
142
|
this.effected.inputs = 0;
|
126
143
|
return $.each($("" + this.settings.form + " input"), function(i, input) {
|
127
|
-
var obj,
|
144
|
+
var brother, movie, obj, strings, value;
|
128
145
|
if (!($(input).val() !== "" || $(input).hasClass('no-populate'))) {
|
129
146
|
if (['checkbox', 'radio', 'hidden'].indexOf($(input).attr('type') < 0)) {
|
130
147
|
_this.effected.inputs += 1;
|
131
148
|
}
|
132
|
-
obj = _this.
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
+
obj = _this.get_random();
|
150
|
+
brother = JSON.parse(obj.brother);
|
151
|
+
movie = JSON.parse(obj.movie);
|
152
|
+
strings = [brother.name, movie.name, obj.first_name, obj.last_name, obj.description].filter(function() {
|
153
|
+
return true;
|
154
|
+
});
|
155
|
+
value = (function() {
|
156
|
+
switch ($(input).attr('type')) {
|
157
|
+
case 'number':
|
158
|
+
return movie.year;
|
159
|
+
case 'email':
|
160
|
+
return "" + (brother.name.toLowerCase().replace(/\s/g, '')) + "@" + (movie.name.toLowerCase().replace(/\s/g, '')) + ".com";
|
161
|
+
case 'url':
|
162
|
+
return "http://" + (movie.name.toLowerCase().replace(/\s/g, '')) + ".com";
|
163
|
+
case 'date':
|
164
|
+
return "" + movie.year + "-01-01";
|
165
|
+
default:
|
166
|
+
return strings[Math.floor(Math.random() * strings.length)];
|
167
|
+
}
|
168
|
+
})();
|
169
|
+
return $(input).attr('data-marx-d', true).val(value);
|
149
170
|
}
|
150
171
|
});
|
151
172
|
},
|
152
173
|
populate_textareas: function() {
|
153
174
|
var _this = this;
|
154
175
|
this.effected.textareas = 0;
|
155
|
-
return $.
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
176
|
+
return $.getJSON("http://marxjs.sparkmasterflex.com:9292/quotes", function(data) {
|
177
|
+
return $.each($("" + _this.settings.form + " textarea"), function(i, input) {
|
178
|
+
_this.effected.textareas += 1;
|
179
|
+
return $(input).attr('data-marx-d', true).val(data[Math.floor(Math.random() * data.length)].body);
|
180
|
+
});
|
160
181
|
});
|
161
182
|
},
|
162
183
|
populate_checkboxes: function() {
|
@@ -260,12 +281,11 @@ $.extend(Marx.prototype, {
|
|
260
281
|
_this = this;
|
261
282
|
$('.marx-generated-ipsum').remove();
|
262
283
|
num = this.$('.ipsum input').val();
|
263
|
-
$ipsum = $("<div class='marx-generated-ipsum " + this.settings.position + "'>\n <h4>Marx Ipsum</h4>\n <a href='#close' class='marx-ipsum-close'>X</a>\n <div class='container'></div>\n</div>");
|
284
|
+
$ipsum = $("<div class='marx-generated-ipsum " + this.settings.position + "'>\n <h4>Marx Ipsum</h4>\n <a href='#close' class='marx-ipsum-close'>X</a>\n <div class='marx-container'></div>\n</div>");
|
264
285
|
$('body').append($ipsum);
|
265
286
|
return $.getJSON("http://marxjs.sparkmasterflex.com:9292/monologues", function(data) {
|
266
287
|
var i, max, monologues, _i;
|
267
288
|
max = num > data.length ? data.length - 1 : num;
|
268
|
-
console.log("Generated the maximum amount of paragraphs available: " + data.length);
|
269
289
|
monologues = data.sort(function() {
|
270
290
|
return 0.5 - Math.random();
|
271
291
|
});
|
@@ -278,6 +298,9 @@ $.extend(Marx.prototype, {
|
|
278
298
|
});
|
279
299
|
});
|
280
300
|
},
|
301
|
+
get_random: function() {
|
302
|
+
return this.marx_json[Math.floor(Math.random() * this.marx_json.length)];
|
303
|
+
},
|
281
304
|
/*=====================
|
282
305
|
EVENTS
|
283
306
|
=====================
|
@@ -323,8 +346,8 @@ $.extend(Marx.prototype, {
|
|
323
346
|
$('select[data-marx-d=true] option:eq(0)').attr('selected', true);
|
324
347
|
break;
|
325
348
|
case 'populate-submit':
|
326
|
-
$.when(this.
|
327
|
-
$(e.target).
|
349
|
+
$.when(this.populate_whole_form()).then(function() {
|
350
|
+
$(e.target).replaceWith("<span class='spinner'>Loading</span>");
|
328
351
|
return setTimeout(function() {
|
329
352
|
return $('form').submit();
|
330
353
|
}, 500);
|
@@ -346,6 +369,9 @@ $.extend(Marx.prototype, {
|
|
346
369
|
}
|
347
370
|
});
|
348
371
|
break;
|
372
|
+
case 'random-image':
|
373
|
+
window.location = "http://marxjs.sparkmasterflex.com:9292/get-image";
|
374
|
+
break;
|
349
375
|
case 'generate-ipsum':
|
350
376
|
this.generate_ipsum();
|
351
377
|
}
|
@@ -85,7 +85,7 @@
|
|
85
85
|
position: absolute;
|
86
86
|
display: block;
|
87
87
|
width: 195px;
|
88
|
-
background-image: url(groucho.png);
|
88
|
+
background-image: url(http://marxjs.sparkmasterflex.com/assets/icons/groucho.png);
|
89
89
|
background-color: #ddd;
|
90
90
|
background-repeat: no-repeat;
|
91
91
|
background-position: 5px center;
|
@@ -120,9 +120,9 @@
|
|
120
120
|
background-size: 24px 24px;
|
121
121
|
text-align: left; }
|
122
122
|
.marx-js-controls .open-controls a.standard-controls {
|
123
|
-
background-image: url(standard.png); }
|
123
|
+
background-image: url(http://marxjs.sparkmasterflex.com/assets/icons/standard.png); }
|
124
124
|
.marx-js-controls .open-controls a.advanced-controls {
|
125
|
-
background-image: url(advanced.png); }
|
125
|
+
background-image: url(http://marxjs.sparkmasterflex.com/assets/icons/advanced.png); }
|
126
126
|
|
127
127
|
.bottom-right, .bottom-left {
|
128
128
|
bottom: 0;
|
@@ -197,3 +197,5 @@
|
|
197
197
|
background-color: #333;
|
198
198
|
text-align: center;
|
199
199
|
text-decoration: none; }
|
200
|
+
|
201
|
+
/*# sourceMappingURL=marx.css.map */
|
data/lib/marxjs/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marxjs-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Keith Raymond
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-11-
|
11
|
+
date: 2014-11-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.5'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.5'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: railties
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.1'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.1'
|
55
55
|
description: MARXjs was created for developers building web applications with long
|
@@ -62,15 +62,15 @@ executables: []
|
|
62
62
|
extensions: []
|
63
63
|
extra_rdoc_files: []
|
64
64
|
files:
|
65
|
-
-
|
66
|
-
-
|
65
|
+
- MIT-LICENSE
|
66
|
+
- README.md
|
67
67
|
- app/assets/images/advanced.png
|
68
68
|
- app/assets/images/groucho.png
|
69
69
|
- app/assets/images/standard.png
|
70
70
|
- app/assets/javascripts/marx.js
|
71
71
|
- app/assets/stylesheets/marx.css
|
72
|
-
-
|
73
|
-
-
|
72
|
+
- lib/marxjs/rails.rb
|
73
|
+
- lib/marxjs/rails/version.rb
|
74
74
|
homepage: https://github.com/Sparkmasterflex/marxjs-rails
|
75
75
|
licenses:
|
76
76
|
- MIT
|
@@ -81,17 +81,17 @@ require_paths:
|
|
81
81
|
- lib
|
82
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
83
83
|
requirements:
|
84
|
-
- -
|
84
|
+
- - ">="
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
version: '0'
|
87
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
|
-
- -
|
89
|
+
- - ">="
|
90
90
|
- !ruby/object:Gem::Version
|
91
91
|
version: '0'
|
92
92
|
requirements: []
|
93
93
|
rubyforge_project:
|
94
|
-
rubygems_version: 2.
|
94
|
+
rubygems_version: 2.4.2
|
95
95
|
signing_key:
|
96
96
|
specification_version: 4
|
97
97
|
summary: A JavaScript plugin for populating forms to speed up testing
|