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.
@@ -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: []