mqbe 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+ }
@@ -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!
@@ -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
@@ -0,0 +1,3 @@
1
+ module Mqbe
2
+ VERSION = "2.0.4"
3
+ end
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: []