netsign-ios-checkboxes 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ .DS_Store
2
+ pkg/*
3
+ *.gem
4
+ *.rbc
5
+ *.swp
6
+ .bundle
7
+ Gemfile.lock
@@ -0,0 +1,61 @@
1
+ # iOS Style Checkboxes for Rails 3.1
2
+
3
+
4
+ This gem provides an easy way of using [iOS style checkboxes](https://github.com/tdreyno/iphone-style-checkboxes).
5
+
6
+
7
+ ## Install
8
+
9
+ Please be sure to have [Rails Assets Pipeline](http://guides.rubyonrails.org/asset_pipeline.html) enabled.
10
+
11
+ Add the following to your `Gemfile`, preferably inside the assets group:
12
+
13
+ ```ruby
14
+ gem 'ios-checkboxes'
15
+ gem 'jquery' # This is required by ios-checkboxes
16
+ ```
17
+
18
+ Then as usually:
19
+
20
+ ```bash
21
+ $ bundle install
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ After installation, all you need to do is to require `ios-checkboxes` inside JavaScript/CoffeeScript and CSS files.
27
+
28
+ Usually you would add this to your `app/assets/javascripts/application.js` file:
29
+
30
+ ```javascript
31
+ //= require ios-checkboxes
32
+ ```
33
+
34
+ This will also automatically require `jquery`.
35
+
36
+ And also update your `app/assets/javascripts/applications.css` to inlude `ios-checkboxes`
37
+
38
+ ```css
39
+ /*
40
+ *= require ios-checkboxes
41
+ *= require_self
42
+ */
43
+ ```
44
+
45
+ That's it. Now you can write stuff like `$(".on-off").iphoneStyle()`.
46
+
47
+ ## Development
48
+
49
+ - Source hosted at [GitHub](https://github.com/tdreyno/iphone-style-checkboxes). See `rails` directory.
50
+ - Report issues and feature requests to [GitHub Issues](https://github.com/tdreyno/iphone-style-checkboxes/issues)
51
+
52
+ To update the gem with the latest files do:
53
+
54
+ ```bash
55
+ cd rails
56
+ rake update
57
+ # Now go and update the version manually in lib/ios-checkboxes/version.rb
58
+ git add .
59
+ git commit -m 'update rails gem'
60
+ rake release
61
+ ```
@@ -0,0 +1,22 @@
1
+ require 'rake'
2
+ require 'bundler/gem_tasks'
3
+
4
+ desc "Update the gem with the latest files"
5
+ task :update do
6
+ # Copy the js file and require jQuery
7
+ js_content = File.read "../jquery/iphone-style-checkboxes.js"
8
+ f = File.new("vendor/assets/javascripts/ios-checkboxes.js", "w")
9
+ f.write("//= require jquery\n\n#{js_content}")
10
+ f.close
11
+
12
+ # Copy the images
13
+ cp_r "../images/", "vendor/assets/"
14
+
15
+ # Copy CSS and make sure it references the images via assets pipeline
16
+ css_content = File.read "../style.css"
17
+ pattern = /url\('images\/([^']+)'\)/
18
+ css_processed = css_content.gsub(pattern) {|m| "url('<%= image_path \"#{$1.sub(/\?.*/, '')}\" %>')" }
19
+ f2 = File.new("vendor/assets/stylesheets/ios-checkboxes.css.erb", "w")
20
+ f2.write(css_processed)
21
+ f2.close
22
+ end
@@ -0,0 +1,19 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/ios-checkboxes/version', __FILE__)
3
+
4
+ Gem::Specification.new do |s|
5
+ s.name = "netsign-ios-checkboxes"
6
+ s.version = IOSCheckboxes::VERSION
7
+ s.authors = ["Thomas Reynolds"]
8
+ s.email = ["me@tdreyno.com"]
9
+ s.homepage = "https://github.com/thermistor/iphone-style-checkboxes"
10
+ s.summary = %q{iOS-style Checkboxes}
11
+ s.description = %q{iOS-style Checkboxes for Rails asset pipeline. Customized specifically for Netsign requirements.}
12
+
13
+ s.rubyforge_project = "netsign-ios-checkboxes"
14
+ s.add_dependency "railties", "~> 3.1"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+
18
+ s.require_paths = ["lib"]
19
+ end
@@ -0,0 +1,6 @@
1
+ require "ios-checkboxes/version"
2
+
3
+ module IOSCheckboxes
4
+ class Engine < ::Rails::Engine
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module IOSCheckboxes
2
+ VERSION = "0.1.2"
3
+ end
@@ -0,0 +1,283 @@
1
+ //= require jquery
2
+
3
+ (function() {
4
+ var iOSCheckbox,
5
+ __slice = Array.prototype.slice;
6
+
7
+ iOSCheckbox = (function() {
8
+
9
+ function iOSCheckbox(elem, options) {
10
+ var key, opts, value;
11
+ this.elem = $(elem);
12
+ opts = $.extend({}, iOSCheckbox.defaults, options);
13
+ for (key in opts) {
14
+ value = opts[key];
15
+ this[key] = value;
16
+ }
17
+ this.elem.data(this.dataName, this);
18
+ this.wrapCheckboxWithDivs();
19
+ this.attachEvents();
20
+ this.disableTextSelection();
21
+ if (this.resizeHandle) this.optionallyResize('handle');
22
+ if (this.resizeContainer) this.optionallyResize('container');
23
+ this.initialPosition();
24
+ }
25
+
26
+ iOSCheckbox.prototype.isDisabled = function() {
27
+ return this.elem.is(':disabled');
28
+ };
29
+
30
+ iOSCheckbox.prototype.wrapCheckboxWithDivs = function() {
31
+ this.elem.wrap("<div class='" + this.containerClass + "' />");
32
+ this.container = this.elem.parent();
33
+ this.offLabel = $("<label class='" + this.labelOffClass + "'>\n <span>" + this.uncheckedLabel + "</span>\n</label>").appendTo(this.container);
34
+ this.offSpan = this.offLabel.children('span');
35
+ this.onLabel = $("<label class='" + this.labelOnClass + "'>\n <span>" + this.checkedLabel + "</span>\n</label>").appendTo(this.container);
36
+ this.onSpan = this.onLabel.children('span');
37
+ return this.handle = $("<div class='" + this.handleClass + "'>\n <div class='" + this.handleRightClass + "'>\n <div class='" + this.handleCenterClass + "' />\n </div>\n</div>").appendTo(this.container);
38
+ };
39
+
40
+ iOSCheckbox.prototype.disableTextSelection = function() {
41
+ if ($.browser.msie) {
42
+ return $([this.handle, this.offLabel, this.onLabel, this.container]).attr("unselectable", "on");
43
+ }
44
+ };
45
+
46
+ iOSCheckbox.prototype._getDimension = function(elem, dimension) {
47
+ if ($.fn.actual != null) {
48
+ return elem.actual(dimension);
49
+ } else {
50
+ return elem[dimension]();
51
+ }
52
+ };
53
+
54
+ iOSCheckbox.prototype.optionallyResize = function(mode) {
55
+ var newWidth, offLabelWidth, onLabelWidth;
56
+ onLabelWidth = this._getDimension(this.onLabel, "width");
57
+ offLabelWidth = this._getDimension(this.offLabel, "width");
58
+ if (mode === "container") {
59
+ newWidth = onLabelWidth > offLabelWidth ? onLabelWidth : offLabelWidth;
60
+ newWidth += this._getDimension(this.handle, "width") + this.handleMargin;
61
+ return this.container.css({
62
+ width: newWidth
63
+ });
64
+ } else {
65
+ newWidth = onLabelWidth > offLabelWidth ? onLabelWidth : offLabelWidth;
66
+ return this.handle.css({
67
+ width: newWidth
68
+ });
69
+ }
70
+ };
71
+
72
+ iOSCheckbox.prototype.onMouseDown = function(event) {
73
+ var x;
74
+ event.preventDefault();
75
+ if (this.isDisabled()) return;
76
+ x = event.pageX || event.originalEvent.changedTouches[0].pageX;
77
+ iOSCheckbox.currentlyClicking = this.handle;
78
+ iOSCheckbox.dragStartPosition = x;
79
+ return iOSCheckbox.handleLeftOffset = parseInt(this.handle.css('left'), 10) || 0;
80
+ };
81
+
82
+ iOSCheckbox.prototype.onDragMove = function(event, x) {
83
+ var newWidth, p;
84
+ if (iOSCheckbox.currentlyClicking !== this.handle) return;
85
+ p = (x + iOSCheckbox.handleLeftOffset - iOSCheckbox.dragStartPosition) / this.rightSide;
86
+ if (p < 0) p = 0;
87
+ if (p > 1) p = 1;
88
+ newWidth = p * this.rightSide;
89
+ this.handle.css({
90
+ left: newWidth
91
+ });
92
+ this.onLabel.css({
93
+ width: newWidth + this.handleRadius
94
+ });
95
+ this.offSpan.css({
96
+ marginRight: -newWidth
97
+ });
98
+ return this.onSpan.css({
99
+ marginLeft: -(1 - p) * this.rightSide
100
+ });
101
+ };
102
+
103
+ iOSCheckbox.prototype.onDragEnd = function(event, x) {
104
+ var p;
105
+ if (iOSCheckbox.currentlyClicking !== this.handle) return;
106
+ if (this.isDisabled()) return;
107
+ if (iOSCheckbox.dragging) {
108
+ p = (x - iOSCheckbox.dragStartPosition) / this.rightSide;
109
+ this.elem.prop('checked', p >= 0.5);
110
+ } else {
111
+ this.elem.prop('checked', !this.elem.prop('checked'));
112
+ }
113
+ iOSCheckbox.currentlyClicking = null;
114
+ iOSCheckbox.dragging = null;
115
+ return this.elem.trigger('change');
116
+ };
117
+
118
+ iOSCheckbox.prototype.refresh = function() {
119
+ return this.didChange();
120
+ };
121
+
122
+ iOSCheckbox.prototype.didChange = function() {
123
+ var new_left;
124
+ if (typeof this.onChange === "function") {
125
+ this.onChange(this.elem, this.elem.prop('checked'));
126
+ }
127
+ if (this.isDisabled()) {
128
+ this.container.addClass(this.disabledClass);
129
+ return false;
130
+ } else {
131
+ this.container.removeClass(this.disabledClass);
132
+ }
133
+ new_left = this.elem.prop('checked') ? this.rightSide : 0;
134
+ this.handle.animate({
135
+ left: new_left
136
+ }, this.duration);
137
+ this.onLabel.animate({
138
+ width: new_left + this.handleRadius
139
+ }, this.duration);
140
+ this.offSpan.animate({
141
+ marginRight: -new_left
142
+ }, this.duration);
143
+ return this.onSpan.animate({
144
+ marginLeft: new_left - this.rightSide
145
+ }, this.duration);
146
+ };
147
+
148
+ iOSCheckbox.prototype.attachEvents = function() {
149
+ var localMouseMove, localMouseUp, self;
150
+ self = this;
151
+ localMouseMove = function(event) {
152
+ return self.onGlobalMove.apply(self, arguments);
153
+ };
154
+ localMouseUp = function(event) {
155
+ self.onGlobalUp.apply(self, arguments);
156
+ $(document).unbind('mousemove touchmove', localMouseMove);
157
+ return $(document).unbind('mouseup touchend', localMouseUp);
158
+ };
159
+ this.elem.change(function() {
160
+ return self.refresh();
161
+ });
162
+ return this.container.bind('mousedown touchstart', function(event) {
163
+ self.onMouseDown.apply(self, arguments);
164
+ $(document).bind('mousemove touchmove', localMouseMove);
165
+ return $(document).bind('mouseup touchend', localMouseUp);
166
+ });
167
+ };
168
+
169
+ iOSCheckbox.prototype.initialPosition = function() {
170
+ var containerWidth, offset;
171
+ containerWidth = this._getDimension(this.container, "width");
172
+ this.offLabel.css({
173
+ width: containerWidth - this.containerRadius
174
+ });
175
+ offset = this.containerRadius + 1;
176
+ if ($.browser.msie && $.browser.version < 7) offset -= 3;
177
+ this.rightSide = containerWidth - this._getDimension(this.handle, "width") - offset;
178
+ if (this.elem.is(':checked')) {
179
+ this.handle.css({
180
+ left: this.rightSide
181
+ });
182
+ this.onLabel.css({
183
+ width: this.rightSide + this.handleRadius
184
+ });
185
+ this.offSpan.css({
186
+ marginRight: -this.rightSide
187
+ });
188
+ } else {
189
+ this.onLabel.css({
190
+ width: 0
191
+ });
192
+ this.onSpan.css({
193
+ marginLeft: -this.rightSide
194
+ });
195
+ }
196
+ if (this.isDisabled()) return this.container.addClass(this.disabledClass);
197
+ };
198
+
199
+ iOSCheckbox.prototype.onGlobalMove = function(event) {
200
+ var x;
201
+ if (!(!this.isDisabled() && iOSCheckbox.currentlyClicking)) return;
202
+ event.preventDefault();
203
+ x = event.pageX || event.originalEvent.changedTouches[0].pageX;
204
+ if (!iOSCheckbox.dragging && (Math.abs(iOSCheckbox.dragStartPosition - x) > this.dragThreshold)) {
205
+ iOSCheckbox.dragging = true;
206
+ }
207
+ return this.onDragMove(event, x);
208
+ };
209
+
210
+ iOSCheckbox.prototype.onGlobalUp = function(event) {
211
+ var x;
212
+ if (!iOSCheckbox.currentlyClicking) return;
213
+ event.preventDefault();
214
+ x = event.pageX || event.originalEvent.changedTouches[0].pageX;
215
+ this.onDragEnd(event, x);
216
+ return false;
217
+ };
218
+
219
+ iOSCheckbox.defaults = {
220
+ duration: 200,
221
+ checkedLabel: 'ON',
222
+ uncheckedLabel: 'OFF',
223
+ resizeHandle: true,
224
+ resizeContainer: true,
225
+ disabledClass: 'iPhoneCheckDisabled',
226
+ containerClass: 'iPhoneCheckContainer',
227
+ labelOnClass: 'iPhoneCheckLabelOn',
228
+ labelOffClass: 'iPhoneCheckLabelOff',
229
+ handleClass: 'iPhoneCheckHandle',
230
+ handleCenterClass: 'iPhoneCheckHandleCenter',
231
+ handleRightClass: 'iPhoneCheckHandleRight',
232
+ dragThreshold: 5,
233
+ handleMargin: 15,
234
+ handleRadius: 4,
235
+ containerRadius: 5,
236
+ dataName: "iphoneStyle",
237
+ onChange: function() {}
238
+ };
239
+
240
+ return iOSCheckbox;
241
+
242
+ })();
243
+
244
+ $.iphoneStyle = this.iOSCheckbox = iOSCheckbox;
245
+
246
+ $.fn.iphoneStyle = function() {
247
+ var args, checkbox, dataName, existingControl, method, params, _i, _len, _ref, _ref2, _ref3, _ref4;
248
+ args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
249
+ dataName = (_ref = (_ref2 = args[0]) != null ? _ref2.dataName : void 0) != null ? _ref : iOSCheckbox.defaults.dataName;
250
+ _ref3 = this.filter(':checkbox');
251
+ for (_i = 0, _len = _ref3.length; _i < _len; _i++) {
252
+ checkbox = _ref3[_i];
253
+ existingControl = $(checkbox).data(dataName);
254
+ if (existingControl != null) {
255
+ method = args[0], params = 2 <= args.length ? __slice.call(args, 1) : [];
256
+ if ((_ref4 = existingControl[method]) != null) {
257
+ _ref4.apply(existingControl, params);
258
+ }
259
+ } else {
260
+ new iOSCheckbox(checkbox, args[0]);
261
+ }
262
+ }
263
+ return this;
264
+ };
265
+
266
+ $.fn.iOSCheckbox = function(options) {
267
+ var opts;
268
+ if (options == null) options = {};
269
+ opts = $.extend({}, options, {
270
+ resizeHandle: false,
271
+ disabledClass: 'iOSCheckDisabled',
272
+ containerClass: 'iOSCheckContainer',
273
+ labelOnClass: 'iOSCheckLabelOn',
274
+ labelOffClass: 'iOSCheckLabelOff',
275
+ handleClass: 'iOSCheckHandle',
276
+ handleCenterClass: 'iOSCheckHandleCenter',
277
+ handleRightClass: 'iOSCheckHandleRight',
278
+ dataName: 'iOSCheckbox'
279
+ });
280
+ return this.iphoneStyle(opts);
281
+ };
282
+
283
+ }).call(this);
@@ -0,0 +1,145 @@
1
+ .iPhoneCheckContainer {
2
+ position: relative;
3
+ height: 27px;
4
+ cursor: pointer;
5
+ overflow: hidden; }
6
+ .iPhoneCheckContainer input {
7
+ position: absolute;
8
+ top: 5px;
9
+ left: 30px;
10
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
11
+ opacity: 0; }
12
+ .iPhoneCheckContainer label {
13
+ white-space: nowrap;
14
+ font-size: 17px;
15
+ line-height: 17px;
16
+ font-weight: bold;
17
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
18
+ cursor: pointer;
19
+ display: block;
20
+ height: 27px;
21
+ position: absolute;
22
+ width: auto;
23
+ top: 0;
24
+ padding-top: 5px;
25
+ overflow: hidden; }
26
+ .iPhoneCheckContainer, .iPhoneCheckContainer label {
27
+ user-select: none;
28
+ -moz-user-select: none;
29
+ -khtml-user-select: none; }
30
+
31
+ .iPhoneCheckDisabled {
32
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
33
+ opacity: 0.5; }
34
+
35
+ label.iPhoneCheckLabelOn {
36
+ color: white;
37
+ background: url('<%= image_path "iphone-style-checkboxes/on.png" %>') no-repeat;
38
+ text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
39
+ left: 0;
40
+ padding-top: 5px; }
41
+ label.iPhoneCheckLabelOn span {
42
+ padding-left: 8px; }
43
+ label.iPhoneCheckLabelOff {
44
+ color: #8b8b8b;
45
+ background: url('<%= image_path "iphone-style-checkboxes/off.png" %>') no-repeat right 0;
46
+ text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
47
+ text-align: right;
48
+ right: 0; }
49
+ label.iPhoneCheckLabelOff span {
50
+ padding-right: 8px; }
51
+
52
+ .iPhoneCheckHandle {
53
+ display: block;
54
+ height: 27px;
55
+ cursor: pointer;
56
+ position: absolute;
57
+ top: 0;
58
+ left: 0;
59
+ width: 0;
60
+ background: url('<%= image_path "iphone-style-checkboxes/slider_left.png" %>') no-repeat;
61
+ padding-left: 3px; }
62
+
63
+ .iPhoneCheckHandleRight {
64
+ height: 100%;
65
+ width: 100%;
66
+ padding-right: 3px;
67
+ background: url('<%= image_path "iphone-style-checkboxes/slider_right.png" %>') no-repeat right 0; }
68
+
69
+ .iPhoneCheckHandleCenter {
70
+ height: 100%;
71
+ width: 100%;
72
+ background: url('<%= image_path "iphone-style-checkboxes/slider_center.png" %>'); }
73
+
74
+ .iOSCheckContainer {
75
+ position: relative;
76
+ height: 27px;
77
+ cursor: pointer;
78
+ overflow: hidden; }
79
+ .iOSCheckContainer input {
80
+ position: absolute;
81
+ top: 5px;
82
+ left: 30px;
83
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=0);
84
+ opacity: 0; }
85
+ .iOSCheckContainer label {
86
+ white-space: nowrap;
87
+ font-size: 17px;
88
+ line-height: 17px;
89
+ font-weight: bold;
90
+ font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
91
+ cursor: pointer;
92
+ display: block;
93
+ height: 27px;
94
+ position: absolute;
95
+ width: auto;
96
+ top: 0;
97
+ padding-top: 5px;
98
+ overflow: hidden; }
99
+ .iOSCheckContainer, .iOSCheckContainer label {
100
+ user-select: none;
101
+ -moz-user-select: none;
102
+ -khtml-user-select: none; }
103
+
104
+ .iOSCheckDisabled {
105
+ filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
106
+ opacity: 0.5; }
107
+
108
+ label.iOSCheckLabelOn {
109
+ color: white;
110
+ background: url('<%= image_path "ios-style-checkboxes/on.png" %>') no-repeat;
111
+ text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
112
+ left: 0;
113
+ padding-top: 5px; }
114
+ label.iOSCheckLabelOn span {
115
+ padding-left: 8px; }
116
+ label.iOSCheckLabelOff {
117
+ color: #8b8b8b;
118
+ background: url('<%= image_path "ios-style-checkboxes/off.png" %>') no-repeat right 0;
119
+ text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
120
+ text-align: right;
121
+ right: 0; }
122
+ label.iOSCheckLabelOff span {
123
+ padding-right: 8px; }
124
+
125
+ .iOSCheckHandle {
126
+ display: block;
127
+ height: 27px;
128
+ cursor: pointer;
129
+ position: absolute;
130
+ top: 0;
131
+ left: 0;
132
+ width: 0;
133
+ background: url('<%= image_path "ios-style-checkboxes/slider_left.png" %>') no-repeat;
134
+ padding-left: 3px; }
135
+
136
+ .iOSCheckHandleRight {
137
+ height: 100%;
138
+ width: 100%;
139
+ padding-right: 3px;
140
+ background: url('<%= image_path "ios-style-checkboxes/slider_right.png" %>') no-repeat right 0; }
141
+
142
+ .iOSCheckHandleCenter {
143
+ height: 100%;
144
+ width: 100%;
145
+ background: url('<%= image_path "ios-style-checkboxes/slider_center.png" %>'); }
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: netsign-ios-checkboxes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Thomas Reynolds
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-25 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: railties
16
+ requirement: &70297727383340 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70297727383340
25
+ description: iOS-style Checkboxes for Rails asset pipeline. Customized specifically
26
+ for Netsign requirements.
27
+ email:
28
+ - me@tdreyno.com
29
+ executables: []
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - README.md
35
+ - Rakefile
36
+ - ios-checkboxes.gemspec
37
+ - lib/ios-checkboxes.rb
38
+ - lib/ios-checkboxes/version.rb
39
+ - vendor/assets/images/ios-style-checkboxes/off.png
40
+ - vendor/assets/images/ios-style-checkboxes/on.png
41
+ - vendor/assets/images/ios-style-checkboxes/slider.png
42
+ - vendor/assets/images/ios-style-checkboxes/slider_center.png
43
+ - vendor/assets/images/ios-style-checkboxes/slider_left.png
44
+ - vendor/assets/images/ios-style-checkboxes/slider_right.png
45
+ - vendor/assets/images/iphone-style-checkboxes/off.png
46
+ - vendor/assets/images/iphone-style-checkboxes/on.png
47
+ - vendor/assets/images/iphone-style-checkboxes/slider.png
48
+ - vendor/assets/images/iphone-style-checkboxes/slider_center.png
49
+ - vendor/assets/images/iphone-style-checkboxes/slider_left.png
50
+ - vendor/assets/images/iphone-style-checkboxes/slider_right.png
51
+ - vendor/assets/javascripts/ios-checkboxes.js
52
+ - vendor/assets/stylesheets/ios-checkboxes.css.erb
53
+ homepage: https://github.com/thermistor/iphone-style-checkboxes
54
+ licenses: []
55
+ post_install_message:
56
+ rdoc_options: []
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ! '>='
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ required_rubygems_version: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ requirements: []
72
+ rubyforge_project: netsign-ios-checkboxes
73
+ rubygems_version: 1.8.15
74
+ signing_key:
75
+ specification_version: 3
76
+ summary: iOS-style Checkboxes
77
+ test_files: []