mqbe 2.0.4
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 +7 -0
- data/assets/javascripts/mqbe.js +57 -0
- data/assets/stylesheets/mqbe.scss +32 -0
- data/lib/MQBE.rb +44 -0
- data/lib/mqbe/engine.rb +11 -0
- data/lib/mqbe/version.rb +3 -0
- metadata +80 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a93b49dfd86eba023d305386160cadd9285b86a3
|
4
|
+
data.tar.gz: f8ae94914063fbe5944db1f66c6385c041b101b7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 7f0ce7dd918a268e98be73d79b35391854dbbcc5b1e58f94e099d9f8a822679e8f32bcb5313c64c7c75431118b08fa98c30e3512bfc5f1999057b74bcb10ac2d
|
7
|
+
data.tar.gz: bde0f6d91dc7dc1cdd68b45d3e3c0002ab65043ed2d5bbaca14bbfa1a66f54527ab6ea75da661fdd966e64cb6f6ca06b210533347563a2c87300f347d1d0b725
|
@@ -0,0 +1,57 @@
|
|
1
|
+
(function($, undefined) {
|
2
|
+
'use strict';
|
3
|
+
|
4
|
+
var $doc = $(document),
|
5
|
+
current_state;
|
6
|
+
|
7
|
+
// If state changed sets the data vars and tries to launch the callback (if exists)
|
8
|
+
function check_state() {
|
9
|
+
var previous_state = current_state;
|
10
|
+
current_state = get_current_state();
|
11
|
+
|
12
|
+
if ( previous_state !== current_state) {
|
13
|
+
$doc.trigger('mqbe');
|
14
|
+
$doc.trigger('leave.' + previous_state + '.mqbe');
|
15
|
+
$doc.trigger('enter.' + current_state + '.mqbe');
|
16
|
+
}
|
17
|
+
return current_state;
|
18
|
+
}
|
19
|
+
|
20
|
+
// Get state from body:after content
|
21
|
+
function get_current_state() {
|
22
|
+
var state = window.getComputedStyle(document.body,':after').getPropertyValue('content');
|
23
|
+
return state.replace( /["']/g,''); // Firefox / Chrome 43 bugfix
|
24
|
+
}
|
25
|
+
|
26
|
+
// Has the browser mediaqueries support?
|
27
|
+
function detect_mq_support() {
|
28
|
+
return (typeof window.matchMedia !== 'undefined' || typeof window.msMatchMedia !== 'undefined');
|
29
|
+
}
|
30
|
+
|
31
|
+
// Debounced resize
|
32
|
+
// https://github.com/louisremi/jquery-smartresize/
|
33
|
+
function on_resize(c,t){
|
34
|
+
window.onresize = function(){
|
35
|
+
clearTimeout(t);
|
36
|
+
t = setTimeout(c,250);
|
37
|
+
};
|
38
|
+
return c;
|
39
|
+
}
|
40
|
+
|
41
|
+
if (detect_mq_support()) {
|
42
|
+
$(function() {
|
43
|
+
check_state();
|
44
|
+
|
45
|
+
// Start listener ASAP if mq are supported
|
46
|
+
on_resize(function() {
|
47
|
+
check_state();
|
48
|
+
});
|
49
|
+
});
|
50
|
+
}
|
51
|
+
|
52
|
+
window.MQBE = {
|
53
|
+
supported: detect_mq_support,
|
54
|
+
current_state: get_current_state
|
55
|
+
};
|
56
|
+
|
57
|
+
})(jQuery);
|
@@ -0,0 +1,32 @@
|
|
1
|
+
// Vars
|
2
|
+
$mobile: 767px;
|
3
|
+
$tablet: 1023px;
|
4
|
+
$small-desktop: 1200px;
|
5
|
+
|
6
|
+
|
7
|
+
/* DESKTOP */
|
8
|
+
body:after {
|
9
|
+
content: 'desktop';
|
10
|
+
display: none;
|
11
|
+
}
|
12
|
+
|
13
|
+
/* SMALL DESKTOP */
|
14
|
+
@media only screen and (max-width: $small-desktop) {
|
15
|
+
body:after {
|
16
|
+
content: 'small-desktop';
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
/* TABLET */
|
21
|
+
@media only screen and (max-width: $tablet) {
|
22
|
+
body:after {
|
23
|
+
content: 'tablet';
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
/* MOBILE */
|
28
|
+
@media only screen and (max-width: $mobile) {
|
29
|
+
body:after {
|
30
|
+
content: 'mobile';
|
31
|
+
}
|
32
|
+
}
|
data/lib/MQBE.rb
ADDED
@@ -0,0 +1,44 @@
|
|
1
|
+
require "mqbe/version"
|
2
|
+
|
3
|
+
module Mqbe
|
4
|
+
class << self
|
5
|
+
def load!
|
6
|
+
if defined?(::Rails)
|
7
|
+
register_rails_engine
|
8
|
+
elsif defined?(::Sprockets)
|
9
|
+
register_sprockets
|
10
|
+
end
|
11
|
+
configure_sass
|
12
|
+
end
|
13
|
+
|
14
|
+
def assets_path
|
15
|
+
@gem_path ||= File.expand_path "../assets", File.dirname(__FILE__)
|
16
|
+
end
|
17
|
+
|
18
|
+
def stylesheets_path
|
19
|
+
File.join assets_path, 'stylesheets'
|
20
|
+
end
|
21
|
+
|
22
|
+
def javascripts_path
|
23
|
+
File.join assets_path, 'javascripts'
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def configure_sass
|
29
|
+
require 'sass'
|
30
|
+
::Sass.load_paths << stylesheets_path
|
31
|
+
end
|
32
|
+
|
33
|
+
def register_rails_engine
|
34
|
+
require "mqbe/engine"
|
35
|
+
end
|
36
|
+
|
37
|
+
def register_sprockets
|
38
|
+
Sprockets.append_path(stylesheets_path)
|
39
|
+
Sprockets.append_path(javascripts_path)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
Mqbe.load!
|
data/lib/mqbe/engine.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
module Mqbe
|
2
|
+
module Rails
|
3
|
+
class Engine < ::Rails::Engine
|
4
|
+
initializer 'mqbe' do |app|
|
5
|
+
app.config.assets.paths << Mqbe.javascripts_path
|
6
|
+
app.config.assets.paths << Mqbe.stylesheets_path
|
7
|
+
app.middleware.use ::ActionDispatch::Static, Mqbe.assets_path
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/mqbe/version.rb
ADDED
metadata
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: mqbe
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- carloscabo
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-08-08 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.11'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: This small javascript library creates JQuery events that are fired when
|
42
|
+
you enter or leave a CSS media query state, for instance from desktop to tablet...
|
43
|
+
etc. It's useful when you need to start or stop some JS functionallity depending
|
44
|
+
on MediaQuery changes / states.
|
45
|
+
email:
|
46
|
+
- carloscabo@gmail.com
|
47
|
+
executables: []
|
48
|
+
extensions: []
|
49
|
+
extra_rdoc_files: []
|
50
|
+
files:
|
51
|
+
- assets/javascripts/mqbe.js
|
52
|
+
- assets/stylesheets/mqbe.scss
|
53
|
+
- lib/MQBE.rb
|
54
|
+
- lib/mqbe/engine.rb
|
55
|
+
- lib/mqbe/version.rb
|
56
|
+
homepage: https://github.com/carloscabo/MQBE
|
57
|
+
licenses:
|
58
|
+
- MIT
|
59
|
+
metadata: {}
|
60
|
+
post_install_message:
|
61
|
+
rdoc_options: []
|
62
|
+
require_paths:
|
63
|
+
- lib
|
64
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
requirements: []
|
75
|
+
rubyforge_project:
|
76
|
+
rubygems_version: 2.5.1
|
77
|
+
signing_key:
|
78
|
+
specification_version: 4
|
79
|
+
summary: Small JS lib that fires events when you enter / leave a CSS mediaquery
|
80
|
+
test_files: []
|