ie-compat 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +76 -0
- data/Rakefile +2 -0
- data/assets/ie-compat/9.js +3 -0
- data/assets/ie-compat/array_foreach.js +58 -0
- data/assets/ie-compat/console.js +20 -0
- data/assets/ie-compat/function_bind.js +25 -0
- data/assets/ie-compat/lt-9.js +4 -0
- data/assets/ie-compat/vendor/html5shiv-printshiv.js +404 -0
- data/assets/ie-compat/vendor/html5shiv.js +220 -0
- data/assets/ie-compat/vendor/json2.js +486 -0
- data/assets/ie-compat/vendor/selectivizr-min.js +5 -0
- data/ie-compat.gemspec +23 -0
- data/lib/ie/compat.rb +6 -0
- data/lib/ie/compat/active_admin.rb +22 -0
- data/lib/ie/compat/assets_path.rb +13 -0
- data/lib/ie/compat/opal.rb +3 -0
- data/lib/ie/compat/railtie.rb +19 -0
- data/lib/ie/compat/sprockets.rb +3 -0
- data/lib/ie/compat/version.rb +5 -0
- data/lib/ie/compat/view_helper.rb +12 -0
- metadata +96 -0
@@ -0,0 +1,5 @@
|
|
1
|
+
/*!
|
2
|
+
* selectivizr v1.0.2 - (c) Keith Clark, freely distributable under the terms of the MIT license.
|
3
|
+
* selectivizr.com
|
4
|
+
*/
|
5
|
+
(function(j){function A(a){return a.replace(B,h).replace(C,function(a,d,b){for(var a=b.split(","),b=0,e=a.length;b<e;b++){var s=D(a[b].replace(E,h).replace(F,h))+o,l=[];a[b]=s.replace(G,function(a,b,c,d,e){if(b){if(l.length>0){var a=l,f,e=s.substring(0,e).replace(H,i);if(e==i||e.charAt(e.length-1)==o)e+="*";try{f=t(e)}catch(k){}if(f){e=0;for(c=f.length;e<c;e++){for(var d=f[e],h=d.className,j=0,m=a.length;j<m;j++){var g=a[j];if(!RegExp("(^|\\s)"+g.className+"(\\s|$)").test(d.className)&&g.b&&(g.b===!0||g.b(d)===!0))h=u(h,g.className,!0)}d.className=h}}l=[]}return b}else{if(b=c?I(c):!v||v.test(d)?{className:w(d),b:!0}:null)return l.push(b),"."+b.className;return a}})}return d+a.join(",")})}function I(a){var c=!0,d=w(a.slice(1)),b=a.substring(0,5)==":not(",e,f;b&&(a=a.slice(5,-1));var l=a.indexOf("(");l>-1&&(a=a.substring(0,l));if(a.charAt(0)==":")switch(a.slice(1)){case "root":c=function(a){return b?a!=p:a==p};break;case "target":if(m==8){c=function(a){function c(){var d=location.hash,e=d.slice(1);return b?d==i||a.id!=e:d!=i&&a.id==e}k(j,"hashchange",function(){g(a,d,c())});return c()};break}return!1;case "checked":c=function(a){J.test(a.type)&&k(a,"propertychange",function(){event.propertyName=="checked"&&g(a,d,a.checked!==b)});return a.checked!==b};break;case "disabled":b=!b;case "enabled":c=function(c){if(K.test(c.tagName))return k(c,"propertychange",function(){event.propertyName=="$disabled"&&g(c,d,c.a===b)}),q.push(c),c.a=c.disabled,c.disabled===b;return a==":enabled"?b:!b};break;case "focus":e="focus",f="blur";case "hover":e||(e="mouseenter",f="mouseleave");c=function(a){k(a,b?f:e,function(){g(a,d,!0)});k(a,b?e:f,function(){g(a,d,!1)});return b};break;default:if(!L.test(a))return!1}return{className:d,b:c}}function w(a){return M+"-"+(m==6&&N?O++:a.replace(P,function(a){return a.charCodeAt(0)}))}function D(a){return a.replace(x,h).replace(Q,o)}function g(a,c,d){var b=a.className,c=u(b,c,d);if(c!=b)a.className=c,a.parentNode.className+=i}function u(a,c,d){var b=RegExp("(^|\\s)"+c+"(\\s|$)"),e=b.test(a);return d?e?a:a+o+c:e?a.replace(b,h).replace(x,h):a}function k(a,c,d){a.attachEvent("on"+c,d)}function r(a,c){if(/^https?:\/\//i.test(a))return c.substring(0,c.indexOf("/",8))==a.substring(0,a.indexOf("/",8))?a:null;if(a.charAt(0)=="/")return c.substring(0,c.indexOf("/",8))+a;var d=c.split(/[?#]/)[0];a.charAt(0)!="?"&&d.charAt(d.length-1)!="/"&&(d=d.substring(0,d.lastIndexOf("/")+1));return d+a}function y(a){if(a)return n.open("GET",a,!1),n.send(),(n.status==200?n.responseText:i).replace(R,i).replace(S,function(c,d,b,e,f){return y(r(b||f,a))}).replace(T,function(c,d,b){d=d||i;return" url("+d+r(b,a)+d+") "});return i}function U(){var a,c;a=f.getElementsByTagName("BASE");for(var d=a.length>0?a[0].href:f.location.href,b=0;b<f.styleSheets.length;b++)if(c=f.styleSheets[b],c.href!=i&&(a=r(c.href,d)))c.cssText=A(y(a));q.length>0&&setInterval(function(){for(var a=0,c=q.length;a<c;a++){var b=q[a];if(b.disabled!==b.a)b.disabled?(b.disabled=!1,b.a=!0,b.disabled=!0):b.a=b.disabled}},250)}if(!/*@cc_on!@*/true){var f=document,p=f.documentElement,n=function(){if(j.XMLHttpRequest)return new XMLHttpRequest;try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(a){return null}}(),m=/MSIE (\d+)/.exec(navigator.userAgent)[1];if(!(f.compatMode!="CSS1Compat"||m<6||m>8||!n)){var z={NW:"*.Dom.select",MooTools:"$$",DOMAssistant:"*.$",Prototype:"$$",YAHOO:"*.util.Selector.query",Sizzle:"*",jQuery:"*",dojo:"*.query"},t,q=[],O=0,N=!0,M="slvzr",R=/(\/\*[^*]*\*+([^\/][^*]*\*+)*\/)\s*/g,S=/@import\s*(?:(?:(?:url\(\s*(['"]?)(.*)\1)\s*\))|(?:(['"])(.*)\3))[^;]*;/g,T=/\burl\(\s*(["']?)(?!data:)([^"')]+)\1\s*\)/g,L=/^:(empty|(first|last|only|nth(-last)?)-(child|of-type))$/,B=/:(:first-(?:line|letter))/g,C=/(^|})\s*([^\{]*?[\[:][^{]+)/g,G=/([ +~>])|(:[a-z-]+(?:\(.*?\)+)?)|(\[.*?\])/g,H=/(:not\()?:(hover|enabled|disabled|focus|checked|target|active|visited|first-line|first-letter)\)?/g,P=/[^\w-]/g,K=/^(INPUT|SELECT|TEXTAREA|BUTTON)$/,J=/^(checkbox|radio)$/,v=m>6?/[\$\^*]=(['"])\1/:null,E=/([(\[+~])\s+/g,F=/\s+([)\]+~])/g,Q=/\s+/g,x=/^\s*((?:[\S\s]*\S)?)\s*$/,i="",o=" ",h="$1";(function(a,c){function d(){try{p.doScroll("left")}catch(a){setTimeout(d,50);return}b("poll")}function b(d){if(!(d.type=="readystatechange"&&f.readyState!="complete")&&((d.type=="load"?a:f).detachEvent("on"+d.type,b,!1),!e&&(e=!0)))c.call(a,d.type||d)}var e=!1,g=!0;if(f.readyState=="complete")c.call(a,i);else{if(f.createEventObject&&p.doScroll){try{g=!a.frameElement}catch(h){}g&&d()}k(f,"readystatechange",b);k(a,"load",b)}})(j,function(){for(var a in z){var c,d,b=j;if(j[a]){for(c=z[a].replace("*",a).split(".");(d=c.shift())&&(b=b[d]););if(typeof b=="function"){t=b;U();break}}}})}}})(this);
|
data/ie-compat.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'ie/compat/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = 'ie-compat'
|
8
|
+
spec.version = IE::Compat::VERSION
|
9
|
+
spec.authors = ['Elia Schito']
|
10
|
+
spec.email = ['elia@schito.me']
|
11
|
+
spec.summary = %q{The usual set of IE 9 and <9 compatibility assets}
|
12
|
+
spec.description = %q{Sick of reimplementing `console.log` every time you have to support Microsoft Internet Explorer < 10?}
|
13
|
+
spec.homepage = 'https://github.com/mikamai/ie-compat#readme'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ['lib']
|
20
|
+
|
21
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
22
|
+
spec.add_development_dependency 'rake'
|
23
|
+
end
|
data/lib/ie/compat.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
if defined? ActiveAdmin
|
2
|
+
module IE; module Compat
|
3
|
+
|
4
|
+
module ActiveAdminBasePage
|
5
|
+
def build(*args)
|
6
|
+
super
|
7
|
+
add_ie_compat_tag
|
8
|
+
end
|
9
|
+
|
10
|
+
def add_ie_compat_tag
|
11
|
+
within @head do
|
12
|
+
text_node(ie_compat_tags)
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
end; end
|
18
|
+
|
19
|
+
ActiveAdmin::Views::Pages::Base.class_eval do
|
20
|
+
include IE::Compat::ActiveAdminBasePage
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module IE
|
2
|
+
module Compat
|
3
|
+
class Railtie < ::Rails::Railtie
|
4
|
+
config.ie_compat = ActiveSupport::OrderedOptions.new
|
5
|
+
|
6
|
+
initializer 'ie-compat.initialize' do
|
7
|
+
require 'ie/compat/assets_path'
|
8
|
+
require 'ie/compat/view_helper'
|
9
|
+
require 'ie/compat/active_admin'
|
10
|
+
|
11
|
+
ActiveSupport.on_load(:action_view) do
|
12
|
+
include ::IE::Compat::ViewHelper
|
13
|
+
end
|
14
|
+
|
15
|
+
config.assets.precompile += %w[ie-compat/*.js]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module IE
|
2
|
+
module Compat
|
3
|
+
module ViewHelper
|
4
|
+
def ie_compat_tags
|
5
|
+
[
|
6
|
+
"<!--[if lt IE 9]>#{javascript_include_tag 'ie-compat/lt-9'}<![endif]-->",
|
7
|
+
"<!--[if IE 9]> #{javascript_include_tag 'ie-compat/9'} <![endif]-->",
|
8
|
+
].join("\n").html_safe
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: ie-compat
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Elia Schito
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-04-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.6'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.6'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Sick of reimplementing `console.log` every time you have to support Microsoft
|
42
|
+
Internet Explorer < 10?
|
43
|
+
email:
|
44
|
+
- elia@schito.me
|
45
|
+
executables: []
|
46
|
+
extensions: []
|
47
|
+
extra_rdoc_files: []
|
48
|
+
files:
|
49
|
+
- ".gitignore"
|
50
|
+
- Gemfile
|
51
|
+
- LICENSE.txt
|
52
|
+
- README.md
|
53
|
+
- Rakefile
|
54
|
+
- assets/ie-compat/9.js
|
55
|
+
- assets/ie-compat/array_foreach.js
|
56
|
+
- assets/ie-compat/console.js
|
57
|
+
- assets/ie-compat/function_bind.js
|
58
|
+
- assets/ie-compat/lt-9.js
|
59
|
+
- assets/ie-compat/vendor/html5shiv-printshiv.js
|
60
|
+
- assets/ie-compat/vendor/html5shiv.js
|
61
|
+
- assets/ie-compat/vendor/json2.js
|
62
|
+
- assets/ie-compat/vendor/selectivizr-min.js
|
63
|
+
- ie-compat.gemspec
|
64
|
+
- lib/ie/compat.rb
|
65
|
+
- lib/ie/compat/active_admin.rb
|
66
|
+
- lib/ie/compat/assets_path.rb
|
67
|
+
- lib/ie/compat/opal.rb
|
68
|
+
- lib/ie/compat/railtie.rb
|
69
|
+
- lib/ie/compat/sprockets.rb
|
70
|
+
- lib/ie/compat/version.rb
|
71
|
+
- lib/ie/compat/view_helper.rb
|
72
|
+
homepage: https://github.com/mikamai/ie-compat#readme
|
73
|
+
licenses:
|
74
|
+
- MIT
|
75
|
+
metadata: {}
|
76
|
+
post_install_message:
|
77
|
+
rdoc_options: []
|
78
|
+
require_paths:
|
79
|
+
- lib
|
80
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
requirements: []
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 2.2.2
|
93
|
+
signing_key:
|
94
|
+
specification_version: 4
|
95
|
+
summary: The usual set of IE 9 and <9 compatibility assets
|
96
|
+
test_files: []
|