ios-checkboxes 0.0.1 → 0.1.0

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,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 = "ios-checkboxes"
6
+ s.version = IOSCheckboxes::VERSION
7
+ s.authors = ["Thomas Reynolds"]
8
+ s.email = ["me@tdreyno.com"]
9
+ s.homepage = "https://github.com/tdreyno/iphone-style-checkboxes"
10
+ s.summary = %q{iOS-style Checkboxes}
11
+ s.description = %q{iOS-style Checkboxes for Rails asset pipeline.}
12
+
13
+ s.rubyforge_project = "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
@@ -1,3 +1,3 @@
1
1
  module IOSCheckboxes
2
- VERSION = "0.0.1"
3
- end
2
+ VERSION = "0.1.0"
3
+ end
@@ -1,3 +1,5 @@
1
+ //= require jquery
2
+
1
3
  (function() {
2
4
  var iOSCheckbox;
3
5
  var __slice = Array.prototype.slice;
@@ -10,6 +12,7 @@
10
12
  value = opts[key];
11
13
  this[key] = value;
12
14
  }
15
+ this.elem.data(this.dataName, this);
13
16
  this.wrapCheckboxWithDivs();
14
17
  this.attachEvents();
15
18
  this.disableTextSelection();
@@ -38,13 +41,20 @@
38
41
  return $([this.handle, this.offLabel, this.onLabel, this.container]).attr("unselectable", "on");
39
42
  }
40
43
  };
44
+ iOSCheckbox.prototype._getDimension = function(elem, dimension) {
45
+ if ($.fn.actual != null) {
46
+ return elem.actual(dimension);
47
+ } else {
48
+ return elem[dimension]();
49
+ }
50
+ };
41
51
  iOSCheckbox.prototype.optionallyResize = function(mode) {
42
52
  var newWidth, offLabelWidth, onLabelWidth;
43
- onLabelWidth = this.onLabel.width();
44
- offLabelWidth = this.offLabel.width();
53
+ onLabelWidth = this._getDimension(this.onLabel, "width");
54
+ offLabelWidth = this._getDimension(this.offLabel, "width");
45
55
  if (mode === "container") {
46
56
  newWidth = onLabelWidth > offLabelWidth ? onLabelWidth : offLabelWidth;
47
- newWidth += this.handle.width() + this.handleMargin;
57
+ newWidth += this._getDimension(this.handle, "width") + this.handleMargin;
48
58
  return this.container.css({
49
59
  width: newWidth
50
60
  });
@@ -156,15 +166,16 @@
156
166
  });
157
167
  };
158
168
  iOSCheckbox.prototype.initialPosition = function() {
159
- var offset;
169
+ var containerWidth, offset;
170
+ containerWidth = this._getDimension(this.container, "width");
160
171
  this.offLabel.css({
161
- width: this.container.width() - this.containerRadius
172
+ width: containerWidth - this.containerRadius
162
173
  });
163
174
  offset = this.containerRadius + 1;
164
175
  if ($.browser.msie && $.browser.version < 7) {
165
176
  offset -= 3;
166
177
  }
167
- this.rightSide = this.container.width() - this.handle.width() - offset;
178
+ this.rightSide = containerWidth - this._getDimension(this.handle, "width") - offset;
168
179
  if (this.elem.is(':checked')) {
169
180
  this.handle.css({
170
181
  left: this.rightSide
@@ -226,32 +237,33 @@
226
237
  handleMargin: 15,
227
238
  handleRadius: 4,
228
239
  containerRadius: 5,
240
+ dataName: "iphoneStyle",
229
241
  onChange: function() {}
230
242
  };
231
243
  return iOSCheckbox;
232
244
  })();
233
245
  $.iphoneStyle = this.iOSCheckbox = iOSCheckbox;
234
246
  $.fn.iphoneStyle = function() {
235
- var args, checkbox, existingControl, method, options, params, _i, _len, _ref, _ref2;
247
+ var args, checkbox, dataName, existingControl, method, params, _i, _len, _ref, _ref2, _ref3, _ref4;
236
248
  args = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
237
- _ref = this.filter(':checkbox');
238
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
239
- checkbox = _ref[_i];
240
- existingControl = $(checkbox).data("iphoneStyle");
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);
241
254
  if (existingControl != null) {
242
255
  method = args[0], params = 2 <= args.length ? __slice.call(args, 1) : [];
243
- if ((_ref2 = existingControl[method]) != null) {
244
- _ref2.apply(existingControl, params);
256
+ if ((_ref4 = existingControl[method]) != null) {
257
+ _ref4.apply(existingControl, params);
245
258
  }
246
259
  } else {
247
- options = args[0];
248
- $(checkbox).data("iphoneStyle", new iOSCheckbox(checkbox, options));
260
+ new iOSCheckbox(checkbox, args[0]);
249
261
  }
250
262
  }
251
263
  return this;
252
264
  };
253
265
  $.fn.iOSCheckbox = function(options) {
254
- var checkbox, opts, _i, _len, _ref;
266
+ var opts;
255
267
  if (options == null) {
256
268
  options = {};
257
269
  }
@@ -263,13 +275,9 @@
263
275
  labelOffClass: 'iOSCheckLabelOff',
264
276
  handleClass: 'iOSCheckHandle',
265
277
  handleCenterClass: 'iOSCheckHandleCenter',
266
- handleRightClass: 'iOSCheckHandleRight'
278
+ handleRightClass: 'iOSCheckHandleRight',
279
+ dataName: 'iOSCheckbox'
267
280
  });
268
- _ref = this.filter(':checkbox');
269
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
270
- checkbox = _ref[_i];
271
- $(checkbox).data("iOSCheckbox", new iOSCheckbox(checkbox, opts));
272
- }
273
- return this;
281
+ return this.iphoneStyle(opts);
274
282
  };
275
283
  }).call(this);
@@ -35,7 +35,7 @@
35
35
 
36
36
  label.iPhoneCheckLabelOn {
37
37
  color: white;
38
- background: url('images/iphone-style-checkboxes/on.png?1284697268') no-repeat;
38
+ background: url('<%= image_path "iphone-style-checkboxes/on.png" %>') no-repeat;
39
39
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
40
40
  left: 0;
41
41
  padding-top: 5px; }
@@ -43,7 +43,7 @@ label.iPhoneCheckLabelOn {
43
43
  padding-left: 8px; }
44
44
  label.iPhoneCheckLabelOff {
45
45
  color: #8b8b8b;
46
- background: url('images/iphone-style-checkboxes/off.png?1284697268') no-repeat right 0;
46
+ background: url('<%= image_path "iphone-style-checkboxes/off.png" %>') no-repeat right 0;
47
47
  text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
48
48
  text-align: right;
49
49
  right: 0; }
@@ -58,19 +58,19 @@ label.iPhoneCheckLabelOff {
58
58
  top: 0;
59
59
  left: 0;
60
60
  width: 0;
61
- background: url('images/iphone-style-checkboxes/slider_left.png?1284697268') no-repeat;
61
+ background: url('<%= image_path "iphone-style-checkboxes/slider_left.png" %>') no-repeat;
62
62
  padding-left: 3px; }
63
63
 
64
64
  .iPhoneCheckHandleRight {
65
65
  height: 100%;
66
66
  width: 100%;
67
67
  padding-right: 3px;
68
- background: url('images/iphone-style-checkboxes/slider_right.png?1284697268') no-repeat right 0; }
68
+ background: url('<%= image_path "iphone-style-checkboxes/slider_right.png" %>') no-repeat right 0; }
69
69
 
70
70
  .iPhoneCheckHandleCenter {
71
71
  height: 100%;
72
72
  width: 100%;
73
- background: url('images/iphone-style-checkboxes/slider_center.png?1284697268'); }
73
+ background: url('<%= image_path "iphone-style-checkboxes/slider_center.png" %>'); }
74
74
 
75
75
  .iOSCheckContainer {
76
76
  position: relative;
@@ -109,7 +109,7 @@ label.iPhoneCheckLabelOff {
109
109
 
110
110
  label.iOSCheckLabelOn {
111
111
  color: white;
112
- background: url('images/ios-style-checkboxes/on.png?1284697268') no-repeat;
112
+ background: url('<%= image_path "ios-style-checkboxes/on.png" %>') no-repeat;
113
113
  text-shadow: 0px 0px 2px rgba(0, 0, 0, 0.6);
114
114
  left: 0;
115
115
  padding-top: 5px; }
@@ -117,7 +117,7 @@ label.iOSCheckLabelOn {
117
117
  padding-left: 8px; }
118
118
  label.iOSCheckLabelOff {
119
119
  color: #8b8b8b;
120
- background: url('images/ios-style-checkboxes/off.png?1284697268') no-repeat right 0;
120
+ background: url('<%= image_path "ios-style-checkboxes/off.png" %>') no-repeat right 0;
121
121
  text-shadow: 0px 0px 2px rgba(255, 255, 255, 0.6);
122
122
  text-align: right;
123
123
  right: 0; }
@@ -132,16 +132,16 @@ label.iOSCheckLabelOff {
132
132
  top: 0;
133
133
  left: 0;
134
134
  width: 0;
135
- background: url('images/ios-style-checkboxes/slider_left.png?1284697268') no-repeat;
135
+ background: url('<%= image_path "ios-style-checkboxes/slider_left.png" %>') no-repeat;
136
136
  padding-left: 3px; }
137
137
 
138
138
  .iOSCheckHandleRight {
139
139
  height: 100%;
140
140
  width: 100%;
141
141
  padding-right: 3px;
142
- background: url('images/ios-style-checkboxes/slider_right.png?1284697268') no-repeat right 0; }
142
+ background: url('<%= image_path "ios-style-checkboxes/slider_right.png" %>') no-repeat right 0; }
143
143
 
144
144
  .iOSCheckHandleCenter {
145
145
  height: 100%;
146
146
  width: 100%;
147
- background: url('images/ios-style-checkboxes/slider_center.png?1284697268'); }
147
+ background: url('<%= image_path "ios-style-checkboxes/slider_center.png" %>'); }
metadata CHANGED
@@ -1,78 +1,76 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ios-checkboxes
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 0
8
- - 1
9
- version: 0.0.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Thomas Reynolds
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2011-10-09 00:00:00 -07:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-13 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: railties
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
16
+ requirement: &70318773319200 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
25
19
  - - ~>
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 3
29
- - 1
30
- version: "3.1"
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
31
22
  type: :runtime
32
- version_requirements: *id001
23
+ prerelease: false
24
+ version_requirements: *70318773319200
33
25
  description: iOS-style Checkboxes for Rails asset pipeline.
34
- email:
26
+ email:
35
27
  - me@tdreyno.com
36
28
  executables: []
37
-
38
29
  extensions: []
39
-
40
30
  extra_rdoc_files: []
41
-
42
- files:
31
+ files:
32
+ - .gitignore
33
+ - Rakefile
34
+ - ios-checkboxes.gemspec
43
35
  - lib/ios-checkboxes.rb
44
36
  - lib/ios-checkboxes/version.rb
37
+ - vendor/assets/images/ios-style-checkboxes/off.png
38
+ - vendor/assets/images/ios-style-checkboxes/on.png
39
+ - vendor/assets/images/ios-style-checkboxes/slider.png
40
+ - vendor/assets/images/ios-style-checkboxes/slider_center.png
41
+ - vendor/assets/images/ios-style-checkboxes/slider_left.png
42
+ - vendor/assets/images/ios-style-checkboxes/slider_right.png
43
+ - vendor/assets/images/iphone-style-checkboxes/off.png
44
+ - vendor/assets/images/iphone-style-checkboxes/on.png
45
+ - vendor/assets/images/iphone-style-checkboxes/slider.png
46
+ - vendor/assets/images/iphone-style-checkboxes/slider_center.png
47
+ - vendor/assets/images/iphone-style-checkboxes/slider_left.png
48
+ - vendor/assets/images/iphone-style-checkboxes/slider_right.png
45
49
  - vendor/assets/javascripts/ios-checkboxes.js
46
- - vendor/assets/stylesheets/ios-checkboxes.css
47
- has_rdoc: true
50
+ - vendor/assets/stylesheets/ios-checkboxes.css.erb
48
51
  homepage: https://github.com/tdreyno/iphone-style-checkboxes
49
52
  licenses: []
50
-
51
53
  post_install_message:
52
54
  rdoc_options: []
53
-
54
- require_paths:
55
+ require_paths:
55
56
  - lib
56
- required_ruby_version: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- segments:
61
- - 0
62
- version: "0"
63
- required_rubygems_version: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- segments:
68
- - 0
69
- version: "0"
57
+ required_ruby_version: !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ required_rubygems_version: !ruby/object:Gem::Requirement
64
+ none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
70
69
  requirements: []
71
-
72
70
  rubyforge_project: ios-checkboxes
73
- rubygems_version: 1.3.6
71
+ rubygems_version: 1.8.10
74
72
  signing_key:
75
73
  specification_version: 3
76
74
  summary: iOS-style Checkboxes
77
75
  test_files: []
78
-
76
+ has_rdoc: