oulu-rails 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/MIT-LICENSE +22 -0
- data/README.md +23 -0
- data/lib/oulu-rails/version.rb +3 -0
- data/lib/oulu-rails.rb +27 -0
- data/vendor/assets/javascripts/oulu/dev/positions-p.js.coffee +34 -0
- data/vendor/assets/javascripts/oulu/dev/positions-pp.js.coffee +57 -0
- data/vendor/assets/javascripts/oulu/dev/positions.js.coffee +6 -0
- data/vendor/assets/javascripts/oulu/helpers/js-autosize.js.coffee +2 -0
- data/vendor/assets/javascripts/oulu/helpers/js-checkbox.js.coffee +6 -0
- data/vendor/assets/javascripts/oulu/helpers/js-click-animate.js.coffee +8 -0
- data/vendor/assets/javascripts/oulu/helpers/js-delay-hidden.js.coffee +4 -0
- data/vendor/assets/javascripts/oulu/helpers/js-focused.js.coffee +7 -0
- data/vendor/assets/javascripts/oulu/helpers/js-hack.js.coffee +8 -0
- data/vendor/assets/javascripts/oulu/helpers/js-hide-after.j.coffee +5 -0
- data/vendor/assets/javascripts/oulu/helpers/js-hover-z-index.js.coffee +5 -0
- data/vendor/assets/javascripts/oulu/helpers/js-hovered.js.coffee +17 -0
- data/vendor/assets/javascripts/oulu/helpers/js-one-animate.js.coffee +5 -0
- data/vendor/assets/javascripts/oulu/helpers/js-open-children.js.coffee +28 -0
- data/vendor/assets/javascripts/oulu/helpers/js-open.js.coffee +51 -0
- data/vendor/assets/javascripts/oulu/helpers/js-scroll-to-top.js.coffee +11 -0
- data/vendor/assets/javascripts/oulu/helpers/js-scroll.js.coffee +9 -0
- data/vendor/assets/javascripts/oulu/helpers/js-side-slide.js.coffee +6 -0
- data/vendor/assets/javascripts/oulu/helpers/js-window-loading.js.coffee +15 -0
- data/vendor/assets/javascripts/oulu/helpers/js-window-sizes.js.coffee +6 -0
- data/vendor/assets/javascripts/oulu/helpers/open-close.js.coffee +23 -0
- data/vendor/assets/javascripts/oulu/ie/PIE_IE678.js +72 -0
- data/vendor/assets/javascripts/oulu/ie/PIE_IE9.js +46 -0
- data/vendor/assets/javascripts/oulu/ie/ie-selectors.js.coffee +3 -0
- data/vendor/assets/javascripts/oulu/ie/ie8-selectors.js.coffee +3 -0
- data/vendor/assets/javascripts/oulu/ie/ie9-selectors.js.coffee +6 -0
- data/vendor/assets/javascripts/oulu/ie/jquery.belatedPNG.min.js +29 -0
- data/vendor/assets/javascripts/oulu/ie/jquery.linkscubber.js +7 -0
- data/vendor/assets/javascripts/oulu/ie/svgeezy.min.js +12 -0
- data/vendor/assets/javascripts/oulu/plugins/check-box.js.coffee +34 -0
- data/vendor/assets/javascripts/oulu/plugins/footerFixed.js +74 -0
- data/vendor/assets/javascripts/oulu/plugins/jquery.autosize.min.js +7 -0
- data/vendor/assets/javascripts/oulu/plugins/jquery.cheat-code.js +63 -0
- data/vendor/assets/javascripts/oulu/plugins/jquery.css3form.js +195 -0
- data/vendor/assets/javascripts/oulu/plugins/jquery.depend.min.js +13 -0
- data/vendor/assets/javascripts/oulu/plugins/sns-buttons.js +339 -0
- data/vendor/assets/javascripts/oulu-ie8.js +6 -0
- data/vendor/assets/javascripts/oulu-ie9.js +2 -0
- data/vendor/assets/javascripts/oulu.js +2 -0
- data/vendor/assets/stylesheets/_oulu-base.css.sass +86 -0
- data/vendor/assets/stylesheets/_oulu.css.sass +13 -0
- data/vendor/assets/stylesheets/bootcamp/CHANGELOG.md +70 -0
- data/vendor/assets/stylesheets/bootcamp/CONTRIBUTING.md +72 -0
- data/vendor/assets/stylesheets/bootcamp/Gruntfile.coffee +34 -0
- data/vendor/assets/stylesheets/bootcamp/LICENSE.md +7 -0
- data/vendor/assets/stylesheets/bootcamp/README.md +52 -0
- data/vendor/assets/stylesheets/bootcamp/bower.json +15 -0
- data/vendor/assets/stylesheets/bootcamp/dist/_bootcamp.scss +46 -0
- data/vendor/assets/stylesheets/bootcamp/dist/bootcamp.coffee +101 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_actual.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_error.scss +29 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_expect.scss +6 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_not-to.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_should.scss +6 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/functions/_to.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_describe.scss +31 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_it.scss +31 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_runner.scss +28 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_should.scss +46 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_xdescribe.scss +9 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/mixins/_xit.scss +9 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/variables/_helpers.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/variables/_settings.scss +2 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/variables/_should.scss +6 -0
- data/vendor/assets/stylesheets/bootcamp/dist/core/variables/_trackers.scss +6 -0
- data/vendor/assets/stylesheets/bootcamp/dist/lib/_sassyjson.scss +1075 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/_be.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/_equal.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_be-empty.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_be-longer-than.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_be-shorter-than.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_contain.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_deep-contain.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_deep-equal.scss +47 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/lists/_have-length-of.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/numbers/_be-close-to.scss +12 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/numbers/_be-greater-than.scss +12 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/numbers/_be-less-than.scss +12 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/types/_be-falsy.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/types/_be-null.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/types/_be-truthy.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/matchers/types/_have-type-of.scss +3 -0
- data/vendor/assets/stylesheets/bootcamp/dist/utils/_contain.scss +15 -0
- data/vendor/assets/stylesheets/bootcamp/dist/utils/_equal.scss +23 -0
- data/vendor/assets/stylesheets/bootcamp/dist/utils/_list-join.scss +35 -0
- data/vendor/assets/stylesheets/bootcamp/dist/utils/_power.scss +15 -0
- data/vendor/assets/stylesheets/bootcamp/package.json +63 -0
- data/vendor/assets/stylesheets/bootcamp/tasks/bootcamp.coffee +83 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/functions/_actual.scss +10 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/functions/_expect.scss +6 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/functions/_not-to.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/functions/_should.scss +10 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/functions/_to.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/mixins/_describe.scss +11 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/mixins/_it.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/mixins/_should.scss +5 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/mixins/_xdescribe.scss +28 -0
- data/vendor/assets/stylesheets/bootcamp/test/core/mixins/_xit.scss +12 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/_be.scss +90 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/_equal.scss +33 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_be-empty.scss +12 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_be-longer-than.scss +29 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_be-shorter-than.scss +29 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_contain.scss +39 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_deep-contain.scss +51 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_deep-equal.scss +151 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/lists/_have-length-of.scss +31 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/numbers/_be-close-to.scss +24 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/numbers/_be-greater-than.scss +16 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/numbers/_be-less-than.scss +16 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/types/_be-falsy.scss +14 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/types/_be-null.scss +13 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/types/_be-truthy.scss +13 -0
- data/vendor/assets/stylesheets/bootcamp/test/matchers/types/_have-type-of.scss +17 -0
- data/vendor/assets/stylesheets/bootcamp/test/specs.scss +45 -0
- data/vendor/assets/stylesheets/bootcamp/test/utils/_contain.scss +41 -0
- data/vendor/assets/stylesheets/bootcamp/test/utils/_equal.scss +79 -0
- data/vendor/assets/stylesheets/bootcamp/test/utils/_list-join.scss +39 -0
- data/vendor/assets/stylesheets/bootcamp/test/utils/_power.scss +13 -0
- data/vendor/assets/stylesheets/helper/_base-helper.css.sass +133 -0
- data/vendor/assets/stylesheets/helper/_click-actions.css.sass +188 -0
- data/vendor/assets/stylesheets/helper/_fade-actions.css.sass +30 -0
- data/vendor/assets/stylesheets/helper/_margin-padding.css.sass +16 -0
- data/vendor/assets/stylesheets/helper/_typoglaphy.css.sass +9 -0
- data/vendor/assets/stylesheets/options/amazlet/_amazlet.css.sass +32 -0
- data/vendor/assets/stylesheets/options/glitch/_glitch.css.sass +31 -0
- data/vendor/assets/stylesheets/options/oulu-buttons/_button-basic.css.sass +31 -0
- data/vendor/assets/stylesheets/options/web-fonts/_cousine.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_font-awsome.css.sass +8 -0
- data/vendor/assets/stylesheets/options/web-fonts/_icomoon.css.sass +10 -0
- data/vendor/assets/stylesheets/options/web-fonts/_lato.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_montserrat.css.sass +13 -0
- data/vendor/assets/stylesheets/options/web-fonts/_old-standard.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_open-sans.css.sass +11 -0
- data/vendor/assets/stylesheets/options/web-fonts/_podkova.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_pt-sans.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_roboto.css.sass +11 -0
- data/vendor/assets/stylesheets/options/web-fonts/_satisfy.css.sass +13 -0
- data/vendor/assets/stylesheets/options/web-fonts/_source-code-pro.css.sass +13 -0
- data/vendor/assets/stylesheets/options/web-fonts/_source-sans-pro.css.sass +13 -0
- data/vendor/assets/stylesheets/options/web-fonts/_special-elite.css.sass +12 -0
- data/vendor/assets/stylesheets/options/web-fonts/_tauri.css.sass +11 -0
- data/vendor/assets/stylesheets/options/web-fonts/_ubuntu.css.sass +12 -0
- data/vendor/assets/stylesheets/settings/functions/_background.css.sass +60 -0
- data/vendor/assets/stylesheets/settings/functions/_bool.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/functions/_border.css.sass +47 -0
- data/vendor/assets/stylesheets/settings/functions/_color.css.sass +65 -0
- data/vendor/assets/stylesheets/settings/functions/_content.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/functions/_cursor.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/functions/_direction.css.sass +8 -0
- data/vendor/assets/stylesheets/settings/functions/_image.css.sass +8 -0
- data/vendor/assets/stylesheets/settings/functions/_length.css.sass +20 -0
- data/vendor/assets/stylesheets/settings/functions/_list.css.sass +11 -0
- data/vendor/assets/stylesheets/settings/functions/_map.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/functions/_number.css.sass +63 -0
- data/vendor/assets/stylesheets/settings/functions/_position.css.sass +47 -0
- data/vendor/assets/stylesheets/settings/functions/_reverse.css.sass +22 -0
- data/vendor/assets/stylesheets/settings/functions/_string.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/functions/_text.css.sass +34 -0
- data/vendor/assets/stylesheets/settings/initializers/_reset.css.sass +85 -0
- data/vendor/assets/stylesheets/settings/mixins/_animation.css.sass +15 -0
- data/vendor/assets/stylesheets/settings/mixins/_background.css.sass +33 -0
- data/vendor/assets/stylesheets/settings/mixins/_balloon-tale.css.sass +111 -0
- data/vendor/assets/stylesheets/settings/mixins/_basic-font.css.sass +40 -0
- data/vendor/assets/stylesheets/settings/mixins/_block.css.sass +30 -0
- data/vendor/assets/stylesheets/settings/mixins/_border.css.sass +28 -0
- data/vendor/assets/stylesheets/settings/mixins/_button-base.css.sass +27 -0
- data/vendor/assets/stylesheets/settings/mixins/_clear-type.css.sass +4 -0
- data/vendor/assets/stylesheets/settings/mixins/_color.css.sass +9 -0
- data/vendor/assets/stylesheets/settings/mixins/_filters.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/mixins/_form.css.sass +7 -0
- data/vendor/assets/stylesheets/settings/mixins/_grids.css.sass +149 -0
- data/vendor/assets/stylesheets/settings/mixins/_html5-input-types.scss +118 -0
- data/vendor/assets/stylesheets/settings/mixins/_ie-hacks.css.sass +8 -0
- data/vendor/assets/stylesheets/settings/mixins/_lines.css.sass +18 -0
- data/vendor/assets/stylesheets/settings/mixins/_link.css.sass +11 -0
- data/vendor/assets/stylesheets/settings/mixins/_list.css.sass +21 -0
- data/vendor/assets/stylesheets/settings/mixins/_margin-padding.css.sass +69 -0
- data/vendor/assets/stylesheets/settings/mixins/_overlay.css.sass +5 -0
- data/vendor/assets/stylesheets/settings/mixins/_positions.css.sass +28 -0
- data/vendor/assets/stylesheets/settings/mixins/_rem.css.sass +53 -0
- data/vendor/assets/stylesheets/settings/mixins/_resets.css.sass +17 -0
- data/vendor/assets/stylesheets/settings/mixins/_responsive-utilities.css.sass +160 -0
- data/vendor/assets/stylesheets/settings/mixins/_sassmatic.css.sass +172 -0
- data/vendor/assets/stylesheets/settings/mixins/_sprite-background.css.sass +18 -0
- data/vendor/assets/stylesheets/settings/mixins/_tables.css.sass +14 -0
- data/vendor/assets/stylesheets/settings/mixins/_text.css.sass +21 -0
- data/vendor/assets/stylesheets/settings/variables/_default.css.sass +69 -0
- metadata +362 -0
@@ -0,0 +1,339 @@
|
|
1
|
+
/*
|
2
|
+
* Social Info 0.2 - jQuery plugin
|
3
|
+
* written by cyokodog
|
4
|
+
*
|
5
|
+
* Copyright (c) 2014 cyokodog
|
6
|
+
* http://www.cyokodog.net/
|
7
|
+
* http://d.hatena.ne.jp/cyokodog/)
|
8
|
+
* http://cyokodog.tumblr.com/
|
9
|
+
* MIT LICENCE
|
10
|
+
*
|
11
|
+
* Built for jQuery library
|
12
|
+
* http://jquery.com
|
13
|
+
*
|
14
|
+
*/
|
15
|
+
|
16
|
+
;(function($){
|
17
|
+
|
18
|
+
$.social = $.social || {};
|
19
|
+
$.si = $.social.info = {
|
20
|
+
jsonp : function( p ){
|
21
|
+
return $.ajax({
|
22
|
+
url:p.url,
|
23
|
+
dataType:'jsonp',
|
24
|
+
data:p.data,
|
25
|
+
success:function( r ){
|
26
|
+
p.callback(r);
|
27
|
+
}
|
28
|
+
});
|
29
|
+
},
|
30
|
+
reArg : function(url , callback){
|
31
|
+
if(typeof url == 'object') return url;
|
32
|
+
if(typeof url == 'function'){
|
33
|
+
callback = url;
|
34
|
+
url = '';
|
35
|
+
}
|
36
|
+
url = url || location.href;
|
37
|
+
return {
|
38
|
+
url : url,
|
39
|
+
callback : callback
|
40
|
+
};
|
41
|
+
},
|
42
|
+
cache : {
|
43
|
+
twitter : {
|
44
|
+
entryCount : {}
|
45
|
+
}
|
46
|
+
},
|
47
|
+
version : '0.2',
|
48
|
+
id : 'social-info',
|
49
|
+
name : 'Social Info'
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
$.si.twitter = {
|
54
|
+
getEntryCount : function(url, callback){
|
55
|
+
var arg = $.extend({
|
56
|
+
url : location.href,
|
57
|
+
useCache : true,
|
58
|
+
callback : function( count ){}
|
59
|
+
}, $.si.reArg(url, callback))
|
60
|
+
var cache = $.si.cache.twitter.entryCount;
|
61
|
+
var eurl = encodeURIComponent(url);
|
62
|
+
if(arg.useCache && cache[eurl] != undefined){
|
63
|
+
arg.callback(cache[eurl]);
|
64
|
+
return;
|
65
|
+
}
|
66
|
+
$.si.jsonp({
|
67
|
+
url : 'http://urls.api.twitter.com/1/urls/count.json',
|
68
|
+
data : {
|
69
|
+
url : arg.url
|
70
|
+
},
|
71
|
+
callback : function(r){
|
72
|
+
var count = r = !r ? 0 : r.count;
|
73
|
+
cache[eurl] = count;
|
74
|
+
arg.callback(count);
|
75
|
+
}
|
76
|
+
});
|
77
|
+
},
|
78
|
+
getEntryUrl : function(url, title ){
|
79
|
+
url = url || location.href;
|
80
|
+
if(title) title = '&text=' + encodeURIComponent(title);
|
81
|
+
else{
|
82
|
+
if(url == location.href) title = '&text=' + encodeURIComponent(document.title);
|
83
|
+
}
|
84
|
+
return 'https://twitter.com/intent/tweet?url=' + encodeURIComponent(url) + (title || '');
|
85
|
+
},
|
86
|
+
getSearchUrl : function( url ){
|
87
|
+
url = url || location.href;
|
88
|
+
return 'https://twitter.com/search?q=' + encodeURIComponent( url );
|
89
|
+
}
|
90
|
+
}
|
91
|
+
|
92
|
+
$.si.facebook = {
|
93
|
+
getEntryCount : function( url , callback){
|
94
|
+
var arg = $.si.reArg(url, callback)
|
95
|
+
$.si.jsonp({
|
96
|
+
url : 'https://graph.facebook.com/',
|
97
|
+
data : {
|
98
|
+
id : arg.url
|
99
|
+
},
|
100
|
+
callback : function(r){
|
101
|
+
arg.callback(r.shares || 0);
|
102
|
+
}
|
103
|
+
});
|
104
|
+
},
|
105
|
+
getEntryUrl : function( url ){
|
106
|
+
url = url || location.href;
|
107
|
+
return 'http://www.facebook.com/sharer.php?u=' + encodeURIComponent(url);
|
108
|
+
},
|
109
|
+
getSearchUrl : function( url ){
|
110
|
+
url = url || location.href;
|
111
|
+
return 'https://www.facebook.com/#!/search/results.php?q=' + encodeURIComponent( url );
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
$.si.googleplus = {
|
116
|
+
getEntryCount : function( url , callback){
|
117
|
+
var arg = $.si.reArg(url, callback)
|
118
|
+
$.ajax({
|
119
|
+
type: "get",
|
120
|
+
dataType: "xml",
|
121
|
+
url: "http://query.yahooapis.com/v1/public/yql",
|
122
|
+
data: {
|
123
|
+
q: "SELECT content FROM data.headers WHERE url='https://plusone.google.com/_/+1/fastbutton?hl=ja&url=" + arg.url + "' and ua='#Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36'",
|
124
|
+
format: "xml",
|
125
|
+
env: "http://datatables.org/alltables.env"
|
126
|
+
},
|
127
|
+
success: function (data) {
|
128
|
+
var content = $(data).find("content").text();
|
129
|
+
var match = content.match(/window\.__SSR[\s*]=[\s*]{c:[\s*](\d+)/i);
|
130
|
+
var count = (match != null) ? match[1] : 0;
|
131
|
+
arg.callback(count);
|
132
|
+
}
|
133
|
+
});
|
134
|
+
},
|
135
|
+
getEntryUrl : function( url ){
|
136
|
+
url = url || location.href;
|
137
|
+
return 'https://plus.google.com/share?url=' + encodeURIComponent(url);
|
138
|
+
},
|
139
|
+
getSearchUrl : function( url ){
|
140
|
+
url = url || location.href;
|
141
|
+
return 'https://plus.google.com/u/0/?tab=mX#s/' + encodeURIComponent( url );
|
142
|
+
}
|
143
|
+
}
|
144
|
+
|
145
|
+
|
146
|
+
$.si.hatebu = {
|
147
|
+
getEntryCount : function( url , callback){
|
148
|
+
var arg = $.si.reArg(url, callback)
|
149
|
+
$.si.jsonp({
|
150
|
+
url : 'http://api.b.st-hatena.com/entry.count',
|
151
|
+
data : {
|
152
|
+
url : arg.url
|
153
|
+
},
|
154
|
+
callback : arg.callback
|
155
|
+
});
|
156
|
+
},
|
157
|
+
getEntryUrl : function(url){
|
158
|
+
url = url || location.href;
|
159
|
+
return 'http://b.hatena.ne.jp/entry/' + url.replace(/^http:\/\//,'').replace(/^https:\/\//,'s/');
|
160
|
+
},
|
161
|
+
getSearchUrl : function( url ){
|
162
|
+
url = url || location.href;
|
163
|
+
return 'http://b.hatena.ne.jp/entrylist?url=' + encodeURIComponent( url );
|
164
|
+
},
|
165
|
+
getEntryList : function( url, sort, callback){
|
166
|
+
if(typeof sort == 'function'){
|
167
|
+
callback = sort;
|
168
|
+
sort = 'count';
|
169
|
+
}
|
170
|
+
if(typeof url == 'function'){
|
171
|
+
callback = url;
|
172
|
+
sort = 'count';
|
173
|
+
url = '';
|
174
|
+
}
|
175
|
+
url = url || location.href;
|
176
|
+
$.si.jsonp({
|
177
|
+
url : 'http://b.hatena.ne.jp/entrylist/json',
|
178
|
+
data : {
|
179
|
+
sort : sort,
|
180
|
+
url : url
|
181
|
+
},
|
182
|
+
callback : callback
|
183
|
+
});
|
184
|
+
},
|
185
|
+
getEntry : function( url , callback){
|
186
|
+
var arg = $.si.reArg(url, callback)
|
187
|
+
$.si.jsonp({
|
188
|
+
url : 'http://b.hatena.ne.jp/entry/jsonlite/',
|
189
|
+
data : {
|
190
|
+
url : arg.url
|
191
|
+
},
|
192
|
+
callback : arg.callback
|
193
|
+
});
|
194
|
+
},
|
195
|
+
getProfileImgUrl : function(id, size){
|
196
|
+
size = size ? '_'+size : '';
|
197
|
+
return 'http://cdn.www.st-hatena.com/users/mo/'+id+'/profile'+size+'.gif';
|
198
|
+
},
|
199
|
+
getEntryImgUrl : function(url){
|
200
|
+
return 'http://b.hatena.ne.jp/entry/image/' + url;
|
201
|
+
}
|
202
|
+
};
|
203
|
+
|
204
|
+
|
205
|
+
})(jQuery);
|
206
|
+
|
207
|
+
/*
|
208
|
+
* Easy Social Buttons 0.2 - jQuery plugin
|
209
|
+
* written by cyokodog
|
210
|
+
*
|
211
|
+
* Copyright (c) 2014 cyokodog
|
212
|
+
* http://www.cyokodog.net/
|
213
|
+
* http://d.hatena.ne.jp/cyokodog/)
|
214
|
+
* http://cyokodog.tumblr.com/
|
215
|
+
* MIT LICENCE
|
216
|
+
*
|
217
|
+
* Built for jQuery library
|
218
|
+
* http://jquery.com
|
219
|
+
*
|
220
|
+
*/
|
221
|
+
|
222
|
+
|
223
|
+
;(function($){
|
224
|
+
|
225
|
+
var plugin = $.esb = $.easySocialButtons = function(option ){
|
226
|
+
var callee = arguments.callee;
|
227
|
+
if(!(this instanceof callee)) return new callee(option );
|
228
|
+
var o = this, c = o.config = $.extend(true, {}, callee.defaults, option);
|
229
|
+
c.orders = option.orders || c.orders;
|
230
|
+
c.buttons = $('<ul class="easy-social-buttons-container sns-buttons__items"/>');
|
231
|
+
if(c.inverseColor) c.buttons.addClass('esb-inverse');
|
232
|
+
$.each(c.orders, function(){
|
233
|
+
var sname = this.toString();
|
234
|
+
var api = c[sname] = $.esb[sname](option );
|
235
|
+
api.getButton().appendTo(c.buttons);
|
236
|
+
});
|
237
|
+
}
|
238
|
+
$.extend(plugin.prototype, {
|
239
|
+
getButtons : function(){ // ボタンの取得
|
240
|
+
var o = this, c = o.config;
|
241
|
+
return c.buttons;
|
242
|
+
},
|
243
|
+
getButtonAPI : function(name ){ // API の取得
|
244
|
+
var o = this, c = o.config;
|
245
|
+
return c[name];
|
246
|
+
}
|
247
|
+
});
|
248
|
+
$.extend(plugin, {
|
249
|
+
defaults : {
|
250
|
+
autoAdd : true, // true でボタンの自動挿入を行う
|
251
|
+
addMethod : 'insertAfter', // ボタンの挿入メソッドを指定
|
252
|
+
callback : function(api ){}, // プラグイン実行後のコールバック処理
|
253
|
+
orders : ['hatebu','twitter', 'facebook', 'googleplus'], // ボタンの表示順
|
254
|
+
labels : { // サービスの表示名
|
255
|
+
'hatebu' : '<i class="fa fa-hatena sns-buttons__icon is-hatena"></i>',
|
256
|
+
'twitter' : '<i class="fa fa-twitter sns-buttons__icon is-twitter"></i>',
|
257
|
+
'facebook' : '<i class="fa fa-facebook sns-buttons__icon is-facebook"></i>',
|
258
|
+
'googleplus' : '<i class="fa fa-google-plus sns-buttons__icon is-google-plus"></i>'
|
259
|
+
}
|
260
|
+
},
|
261
|
+
version : '0.2',
|
262
|
+
id : 'easy-social-buttons',
|
263
|
+
name : 'Easy Social Buttons'
|
264
|
+
});
|
265
|
+
|
266
|
+
$.fn.easySocialButtons = function(option ){
|
267
|
+
var c = $.extend(true, {}, plugin.defaults, option);
|
268
|
+
if(option) c.orders = option.orders || c.orders;
|
269
|
+
return this.each(function(){
|
270
|
+
var t = $(this);
|
271
|
+
c.url = t.prop('href') || t.data('href') || t.data('url') || c.url;
|
272
|
+
if(!c.url){
|
273
|
+
c.url = location.href;
|
274
|
+
c.addMethod = 'appendTo';
|
275
|
+
}
|
276
|
+
var api = $.easySocialButtons(c);
|
277
|
+
if(c.autoAdd){
|
278
|
+
api.getButtons(c)[c.addMethod](t);
|
279
|
+
}
|
280
|
+
c.callback.apply(t[0], [api]);
|
281
|
+
});
|
282
|
+
}
|
283
|
+
|
284
|
+
var DF = plugin.defaults;
|
285
|
+
$.each(DF.orders, function(idx){
|
286
|
+
var sname = this.toString();
|
287
|
+
var f = $.esb[sname] = function(option ){
|
288
|
+
var callee = arguments.callee;
|
289
|
+
if(!(this instanceof callee)) return new callee(option );
|
290
|
+
var o = this, c = o.config = $.extend(true, {}, callee.defaults, callee.overwrite[sname] || {}, option, option[sname]);
|
291
|
+
c.url = c.url || location.href;
|
292
|
+
c.button = $(c.tempalte);
|
293
|
+
c.wrapper = c.button.hasClass('esb') ? c.button : c.button.find('.esb');
|
294
|
+
c.label = c.wrapper.find('.esb-label').html(c.label);
|
295
|
+
c.counter = c.wrapper.find('.esb-counter').html(c.waitCounter);
|
296
|
+
c.entryLink = c.wrapper.find('a.esb-entry');
|
297
|
+
c.searchLink = c.wrapper.find('a.esb-search');
|
298
|
+
if(c.useBrandColor) c.wrapper.addClass('esb-' + sname);
|
299
|
+
if($.si){
|
300
|
+
var SI = $.si[sname];
|
301
|
+
if(c.counter.size() && SI.getEntryCount){
|
302
|
+
SI.getEntryCount(c.url, function(count ){
|
303
|
+
c.counter.text(count);
|
304
|
+
});
|
305
|
+
}
|
306
|
+
!SI.getEntryUrl || c.entryLink.prop('href', SI.getEntryUrl(c.url )).prop('title', c.entryTitle);
|
307
|
+
!SI.getSearchUrl || c.searchLink.prop('href', SI.getSearchUrl(c.url )).prop('title', c.searchTitle);
|
308
|
+
}
|
309
|
+
}
|
310
|
+
$.extend(f.prototype, {
|
311
|
+
getButton : function(){
|
312
|
+
var o = this, c = o.config;
|
313
|
+
return c.button;
|
314
|
+
}
|
315
|
+
});
|
316
|
+
$.extend(f, {
|
317
|
+
id : sname,
|
318
|
+
defaults : {
|
319
|
+
url : '',
|
320
|
+
label : DF.labels[sname],
|
321
|
+
entryTitle : '投稿する', // esb-entry クラスを持つ要素に割り当てる title 属性値
|
322
|
+
searchTitle : '検索する', // esb-search クラスを持つ要素に割り当てる title 属性値
|
323
|
+
waitCounter : '<span> </span>', // Web API の取得結果待ち時に表示するマークアップ
|
324
|
+
tempalte : '<li class="esb sns-buttons__item"><a class="esb-label esb-entry sns-buttons__entry-link" target="_blank"></a><a class="esb-counter esb-search sns-buttons__search-link" target="_blank"></a></li>', // ボタンのテンプレート
|
325
|
+
useBrandColor : false, // ブランドカラーの使用
|
326
|
+
inverseColor : false // ブランドカラー未使用時の配色の反転
|
327
|
+
},
|
328
|
+
overwrite : {
|
329
|
+
hatebu : {
|
330
|
+
entryTitle : 'ブックマークする'
|
331
|
+
}
|
332
|
+
}
|
333
|
+
});
|
334
|
+
});
|
335
|
+
})(jQuery);
|
336
|
+
|
337
|
+
$(function(){
|
338
|
+
$('.sns-buttons').easySocialButtons();
|
339
|
+
});
|
@@ -0,0 +1,86 @@
|
|
1
|
+
//////////////
|
2
|
+
//settings
|
3
|
+
//////////////
|
4
|
+
|
5
|
+
// compass
|
6
|
+
///////////////////
|
7
|
+
|
8
|
+
@import compass/css3
|
9
|
+
@import compass/typography/links
|
10
|
+
@import compass/typography/lists
|
11
|
+
@import compass/typography/text
|
12
|
+
@import compass/utilities/general
|
13
|
+
@import compass/utilities/sprites
|
14
|
+
@import compass/utilities/tables
|
15
|
+
|
16
|
+
// compass plugins
|
17
|
+
///////////////////
|
18
|
+
|
19
|
+
// compass-rgbapng https://github.com/aaronrussell/compass-rgbapng
|
20
|
+
@import rgbapng
|
21
|
+
// SassyLists http://sassylists.com/
|
22
|
+
@import SassyLists
|
23
|
+
// sass-ceaser-easing https://github.com/jhardy/compass-ceaser-easing
|
24
|
+
@import ceaser-easing
|
25
|
+
// modular-scale https://github.com/Team-Sass/modular-scale
|
26
|
+
@import modular-scale
|
27
|
+
|
28
|
+
// variables
|
29
|
+
///////////////////
|
30
|
+
|
31
|
+
@import settings/variables/default
|
32
|
+
|
33
|
+
// functions
|
34
|
+
///////////////////
|
35
|
+
@import settings/functions/number
|
36
|
+
@import settings/functions/string
|
37
|
+
@import settings/functions/length
|
38
|
+
@import settings/functions/list
|
39
|
+
@import settings/functions/map
|
40
|
+
@import settings/functions/bool
|
41
|
+
@import settings/functions/position
|
42
|
+
@import settings/functions/text
|
43
|
+
@import settings/functions/direction
|
44
|
+
@import settings/functions/reverse
|
45
|
+
@import settings/functions/color
|
46
|
+
@import settings/functions/image
|
47
|
+
@import settings/functions/background
|
48
|
+
@import settings/functions/border
|
49
|
+
|
50
|
+
// mixins
|
51
|
+
///////////////////
|
52
|
+
|
53
|
+
@import settings/mixins/rem
|
54
|
+
@import settings/mixins/basic-font
|
55
|
+
@import settings/mixins/clear-type
|
56
|
+
@import settings/mixins/resets
|
57
|
+
@import settings/mixins/text
|
58
|
+
@import settings/mixins/positions
|
59
|
+
@import settings/mixins/block
|
60
|
+
@import settings/mixins/link
|
61
|
+
@import settings/mixins/border
|
62
|
+
@import settings/mixins/tables
|
63
|
+
@import settings/mixins/list
|
64
|
+
@import settings/mixins/color
|
65
|
+
@import settings/mixins/overlay
|
66
|
+
@import settings/mixins/balloon-tale
|
67
|
+
@import settings/mixins/sprite-background
|
68
|
+
@import settings/mixins/margin-padding
|
69
|
+
@import settings/mixins/animation
|
70
|
+
@import settings/mixins/grids
|
71
|
+
@import settings/mixins/responsive-utilities
|
72
|
+
@import settings/mixins/background
|
73
|
+
@import settings/mixins/lines
|
74
|
+
@import settings/mixins/button-base
|
75
|
+
|
76
|
+
// http://sassmatic.com/
|
77
|
+
// @import settings/mixins/sassmatic
|
78
|
+
|
79
|
+
// sass3.3以上のみ使用可
|
80
|
+
@import settings/mixins/html5-input-types
|
81
|
+
|
82
|
+
// initializers
|
83
|
+
///////////////////
|
84
|
+
|
85
|
+
@import compass/reset
|
86
|
+
@import settings/initializers/reset
|
@@ -0,0 +1,13 @@
|
|
1
|
+
//////////////
|
2
|
+
//settings
|
3
|
+
//////////////
|
4
|
+
|
5
|
+
// oulu-base
|
6
|
+
@import oulu-base
|
7
|
+
|
8
|
+
// helper-classes
|
9
|
+
@import helper/base-helper
|
10
|
+
@import helper/margin-padding
|
11
|
+
@import helper/typoglaphy
|
12
|
+
@import helper/click-actions
|
13
|
+
@import helper/fade-actions
|
@@ -0,0 +1,70 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
#### 1.1.7 - 2014-8-31
|
4
|
+
|
5
|
+
- Updated npm dependencies
|
6
|
+
|
7
|
+
#### 1.1.6 - 2014-6-27
|
8
|
+
|
9
|
+
- Switch to SassyJson
|
10
|
+
|
11
|
+
#### 1.1.5 - 2014-3-21
|
12
|
+
|
13
|
+
- Grunt: Fail instead of warn
|
14
|
+
|
15
|
+
#### 1.1.4 - 2014-2-24
|
16
|
+
|
17
|
+
- Updated npm dependencies
|
18
|
+
|
19
|
+
#### 1.1.2 - 2014-1-12
|
20
|
+
|
21
|
+
- Fix nested describe naming
|
22
|
+
- Add bc-util-list-join utility
|
23
|
+
- Fix newline regex on windows
|
24
|
+
- Update grunt-contrib-sass
|
25
|
+
|
26
|
+
#### 1.1.0 - 2013-11-19
|
27
|
+
|
28
|
+
- Sass 3.3 (breaking change)
|
29
|
+
|
30
|
+
#### 1.0.0 - 2013-11-16
|
31
|
+
|
32
|
+
- Add Matcher have-type-of
|
33
|
+
- Adds Warnings/Errors
|
34
|
+
- Adds leading underscores to scss files
|
35
|
+
- Remove be-undefined()
|
36
|
+
- Remove be-defined()
|
37
|
+
- Add Stringify Util
|
38
|
+
- Improve Statement output with stringify util
|
39
|
+
- Add Contain Util
|
40
|
+
- Add Equal Util
|
41
|
+
- Switch meaning of be() and equal()
|
42
|
+
- Clean up contain() and deep-contain() with contain util
|
43
|
+
- Renames internal variables to make more sense
|
44
|
+
- Refactor Grunt Task
|
45
|
+
|
46
|
+
#### 0.0.5 - 2013-10-20
|
47
|
+
|
48
|
+
- Better Test Output
|
49
|
+
|
50
|
+
#### 0.0.4 - 2013-10-19
|
51
|
+
|
52
|
+
- Restructuring
|
53
|
+
- Improved Matchers
|
54
|
+
- New List Matchers
|
55
|
+
|
56
|
+
#### 0.0.3 - 2013-10-13
|
57
|
+
|
58
|
+
- Restructuring
|
59
|
+
- Custom Matchers
|
60
|
+
- Grunt Plugin
|
61
|
+
- NPM
|
62
|
+
|
63
|
+
#### 0.0.2 - 2013-10-12
|
64
|
+
|
65
|
+
- Add Bower
|
66
|
+
- Cleanup
|
67
|
+
|
68
|
+
#### 0.0.1 - 2013-10-09
|
69
|
+
|
70
|
+
- Initial Release
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# Contribute to Bootcamp
|
2
|
+
|
3
|
+
> This document is a work in progress, if you see something weird or just plain stupid. First know that I copied most of it from other projects. Then submit an issue.
|
4
|
+
|
5
|
+
Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved.
|
6
|
+
|
7
|
+
Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests.
|
8
|
+
|
9
|
+
## Github Issues
|
10
|
+
|
11
|
+
Github issues for this repository is the preferred medium for bug reports and feature requests.
|
12
|
+
|
13
|
+
## Bugs
|
14
|
+
|
15
|
+
A bug is demonstrable problem caused by the code in this repository, so please take the time to make sure that it is not a bug in your own code. Good bug reports are extremely helpful and are formed by the following guidelines:
|
16
|
+
|
17
|
+
1. **Search through existing Github Issues** to make sure that your issue has not already been reported. If an issue already exists then that is the appropriate place for you to contribute.
|
18
|
+
2. **Make sure the bug has not already been fixed** by attempting to reproduce the issue with the latest version of this repository.
|
19
|
+
3. **Isolate the bug** as much as possible, the more code the more difficult it is to fix. Ideally you should create a [reduced test case](http://css-tricks.com/reduced-test-cases/).
|
20
|
+
4. **Submit bug with as much detail as possible**. Just attaching a block of code is not enough, try your best to solve the issue and detail everything you tried.
|
21
|
+
|
22
|
+
**Example Bug Report:**
|
23
|
+
|
24
|
+
> ## A Short but Descriptive Title
|
25
|
+
>
|
26
|
+
> A summary of the bug and the environment in which it occurs (Browser/OS).
|
27
|
+
>
|
28
|
+
> Please include steps to reproduce the bug.
|
29
|
+
> 1. Step One
|
30
|
+
> 2. Step Two
|
31
|
+
> 3. Step Three
|
32
|
+
>
|
33
|
+
> A link to a reduced test case `http://url.com/example`
|
34
|
+
>
|
35
|
+
> Any other information you want to share that you think is applicable to the bug. Please include some code which you believe is causing the problem, or any errors that are occurring in the console.
|
36
|
+
>
|
37
|
+
> If you think you have a solution please include it here.
|
38
|
+
|
39
|
+
## Features
|
40
|
+
|
41
|
+
Feature requests are welcome. But take a moment to find out whether your idea fits with the scope and aim of this project. It's up to you to make a strong case for any idea you have. Please provide as much detail and context as possible.
|
42
|
+
|
43
|
+
## Making Changes
|
44
|
+
|
45
|
+
First, ensure that you have the latest version of everything installed. (Node.js, npm, grunt-cli)
|
46
|
+
|
47
|
+
1. Fork and clone the repo.
|
48
|
+
2. Check out the master or latest version branch
|
49
|
+
3. Run `npm install` to install all Bootcamp dependencies
|
50
|
+
4. Run `grunt` to prepare everything
|
51
|
+
|
52
|
+
Assuming that you don't see any red, you're ready to go. Just be sure to run `grunt` after making any change, to ensure that nothing has broken.
|
53
|
+
|
54
|
+
## Pull Request
|
55
|
+
|
56
|
+
1. Create a new branch, never work on the master branch directly. Use a short but descriptive branch name (eg. `add_new_feature`, `fix_certain_bug`, `update_weird_typo`).
|
57
|
+
2. Add failing tests for the change you want to make. Run `grunt` to see the tests fail.
|
58
|
+
3. Make the change.
|
59
|
+
4. Run `grunt` to see if the tests pass. Repeat steps 2-4 until done.
|
60
|
+
5. Update the documentation to reflect any changes.
|
61
|
+
6. Push to your fork and submit a pull request.
|
62
|
+
|
63
|
+
## Syntax
|
64
|
+
|
65
|
+
- Two space indents. Don't use tabs anywhere. Use `\t` if you need a tab character in a string.
|
66
|
+
- No trailing whitespace.
|
67
|
+
- Don't go overboard with the whitespace.
|
68
|
+
- Delimit string with single-quotes `'`, except in any Sass code, use double-quotes `"`.
|
69
|
+
- Prefer `if` and `else` to ["clever"](http://programmers.stackexchange.com/questions/25276/why-is-cleverness-considered-harmful-in-programming-by-some-people/25281#25281) uses of `? :` conditional or `||`, `&&` logical operators.
|
70
|
+
- Use verbose names (`or`, `and`, `not`, `unless`, etc.) in languages that support them.
|
71
|
+
- Comments are great. Just put them _before_ the line of code, _not_ at the _end_ of the line.
|
72
|
+
- **When in doubt, follow the conventions you see used in the source already.**
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# global module: false
|
2
|
+
module.exports = (grunt) ->
|
3
|
+
|
4
|
+
# Modules
|
5
|
+
grunt.loadNpmTasks 'grunt-init'
|
6
|
+
grunt.loadNpmTasks 'grunt-contrib-sass'
|
7
|
+
grunt.loadNpmTasks 'grunt-contrib-watch'
|
8
|
+
|
9
|
+
# Grunt Tasks
|
10
|
+
grunt.initConfig
|
11
|
+
pkg: grunt.file.readJSON 'package.json'
|
12
|
+
meta: version: '<%= pkg.version %>'
|
13
|
+
|
14
|
+
# Sass
|
15
|
+
sass: test:
|
16
|
+
options:
|
17
|
+
style: 'expanded'
|
18
|
+
loadPath: './dist'
|
19
|
+
files: './test/results.css' : './test/specs.scss'
|
20
|
+
|
21
|
+
# Bootcamp
|
22
|
+
bootcamp: dist:
|
23
|
+
files: src: ['./test/results.css']
|
24
|
+
|
25
|
+
# Watch
|
26
|
+
watch: dist:
|
27
|
+
files: ['./dist/**/*.scss', './test/**/*.scss']
|
28
|
+
tasks: ['sass', 'bootcamp']
|
29
|
+
|
30
|
+
grunt.loadTasks 'tasks'
|
31
|
+
|
32
|
+
# Tasks
|
33
|
+
grunt.registerTask 'default', ['sass', 'bootcamp', 'watch']
|
34
|
+
grunt.registerTask 'test', ['sass', 'bootcamp']
|
@@ -0,0 +1,7 @@
|
|
1
|
+
Copyright (C) 2013 James Kyle
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
4
|
+
|
5
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
6
|
+
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|