cd2_tabs 0.1.0 → 0.2.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 116a6ed00e6e13930e3532aa63d4f5b1bb7b490c
4
- data.tar.gz: fb460e005cab7f54cdf9cbb63999884238841124
3
+ metadata.gz: 1df111b6813a8d39b86a6fae2e92100a24e36225
4
+ data.tar.gz: 1896654a027fa86d7d9d46c62db0312ea8c5dfdb
5
5
  SHA512:
6
- metadata.gz: 01d419ba771ed2c40c99178d8dddb7624f2c75aadd0ab4e137f2ebba844e8275366a43e7cbcdd1ea3a108104d1993520190d61fcd1759a5bec1947f38ee3ca26
7
- data.tar.gz: 044e1dcbbe94badfcbd9796fc28bca5e0cd2211fb9f1c272c73f88f8341dcf2e29817d4b487e1b7173fcb2fd1321dd158611d5124fca7058cba498d1f35049e8
6
+ metadata.gz: 375bf93f023377e235370f38badb651d28c0c2f2684d7d9407093c3acf2e44cbb0f09a5e156c1d51f253e8f99270011dcb5f4896ea058adf9dddfa60f640194a
7
+ data.tar.gz: 885f75e6cf0ad9b463b4a034ab57d050f3a71d0e99e881ee35f00b04ceb68d30229ace4ae66250601d78804551e069d650158b680a3c711e25c2d8522f2f8dd0
data/README.md CHANGED
@@ -1,9 +1,27 @@
1
1
  # Cd2Tabs
2
- Short description and motivation.
2
+ Allows you to easily create tabs.
3
3
 
4
4
  ## Usage
5
- How to use my plugin.
6
5
 
6
+ ```
7
+ <%= tabs do %>
8
+ <%= tab :name, 'Display Name', class: 'class_name' do %>
9
+ <h1>text</h1>
10
+ <% end %>
11
+ <% end %>
12
+ ```
13
+
14
+ ```
15
+ = tabs do
16
+ = tab :name, 'Display Name', class: 'class_name' do
17
+ %span text
18
+ ```
19
+
20
+ Add
21
+ ```
22
+ //= require cd2_tabs_cookies
23
+ ```
24
+ to application.js enable remembering last clicked tab
7
25
  ## Installation
8
26
  Add this line to your application's Gemfile:
9
27
 
@@ -0,0 +1,25 @@
1
+ //= require jscookie
2
+
3
+ $(function (){
4
+ var cookieName = "tab_" + window.location.pathname;
5
+ var cookieTab = Cookies.get(cookieName);
6
+
7
+ if ( typeof cookieTab !== 'undefined' && cookieTab.length > 0 ) {
8
+
9
+ // Switching tabs on ajax load & switch tab on page load
10
+ $( document ).ajaxComplete(function( event, request, settings ) {
11
+ $(".tabs_container input[value='"+cookieTab+"']").prop( "checked", true );
12
+ });
13
+
14
+ $(".tabs_container input[value='"+cookieTab+"']").prop( "checked", true );
15
+
16
+ }
17
+
18
+ // Delegated event listener for tab heads for when ajax loading
19
+ $("body").on("click", ".tab_heads_container label", function(){
20
+
21
+ Cookies.set(cookieName, $(this).attr('class'), { expires: 0.01 });
22
+
23
+ })
24
+
25
+ })
@@ -0,0 +1,165 @@
1
+ /*!
2
+ * JavaScript Cookie v2.1.3
3
+ * https://github.com/js-cookie/js-cookie
4
+ *
5
+ * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
6
+ * Released under the MIT license
7
+ */
8
+ ;(function (factory) {
9
+ var registeredInModuleLoader = false;
10
+ if (typeof define === 'function' && define.amd) {
11
+ define(factory);
12
+ registeredInModuleLoader = true;
13
+ }
14
+ if (typeof exports === 'object') {
15
+ module.exports = factory();
16
+ registeredInModuleLoader = true;
17
+ }
18
+ if (!registeredInModuleLoader) {
19
+ var OldCookies = window.Cookies;
20
+ var api = window.Cookies = factory();
21
+ api.noConflict = function () {
22
+ window.Cookies = OldCookies;
23
+ return api;
24
+ };
25
+ }
26
+ }(function () {
27
+ function extend () {
28
+ var i = 0;
29
+ var result = {};
30
+ for (; i < arguments.length; i++) {
31
+ var attributes = arguments[ i ];
32
+ for (var key in attributes) {
33
+ result[key] = attributes[key];
34
+ }
35
+ }
36
+ return result;
37
+ }
38
+
39
+ function init (converter) {
40
+ function api (key, value, attributes) {
41
+ var result;
42
+ if (typeof document === 'undefined') {
43
+ return;
44
+ }
45
+
46
+ // Write
47
+
48
+ if (arguments.length > 1) {
49
+ attributes = extend({
50
+ path: '/'
51
+ }, api.defaults, attributes);
52
+
53
+ if (typeof attributes.expires === 'number') {
54
+ var expires = new Date();
55
+ expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);
56
+ attributes.expires = expires;
57
+ }
58
+
59
+ // We're using "expires" because "max-age" is not supported by IE
60
+ attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';
61
+
62
+ try {
63
+ result = JSON.stringify(value);
64
+ if (/^[\{\[]/.test(result)) {
65
+ value = result;
66
+ }
67
+ } catch (e) {}
68
+
69
+ if (!converter.write) {
70
+ value = encodeURIComponent(String(value))
71
+ .replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);
72
+ } else {
73
+ value = converter.write(value, key);
74
+ }
75
+
76
+ key = encodeURIComponent(String(key));
77
+ key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);
78
+ key = key.replace(/[\(\)]/g, escape);
79
+
80
+ var stringifiedAttributes = '';
81
+
82
+ for (var attributeName in attributes) {
83
+ if (!attributes[attributeName]) {
84
+ continue;
85
+ }
86
+ stringifiedAttributes += '; ' + attributeName;
87
+ if (attributes[attributeName] === true) {
88
+ continue;
89
+ }
90
+ stringifiedAttributes += '=' + attributes[attributeName];
91
+ }
92
+ return (document.cookie = key + '=' + value + stringifiedAttributes);
93
+ }
94
+
95
+ // Read
96
+
97
+ if (!key) {
98
+ result = {};
99
+ }
100
+
101
+ // To prevent the for loop in the first place assign an empty array
102
+ // in case there are no cookies at all. Also prevents odd result when
103
+ // calling "get()"
104
+ var cookies = document.cookie ? document.cookie.split('; ') : [];
105
+ var rdecode = /(%[0-9A-Z]{2})+/g;
106
+ var i = 0;
107
+
108
+ for (; i < cookies.length; i++) {
109
+ var parts = cookies[i].split('=');
110
+ var cookie = parts.slice(1).join('=');
111
+
112
+ if (cookie.charAt(0) === '"') {
113
+ cookie = cookie.slice(1, -1);
114
+ }
115
+
116
+ try {
117
+ var name = parts[0].replace(rdecode, decodeURIComponent);
118
+ cookie = converter.read ?
119
+ converter.read(cookie, name) : converter(cookie, name) ||
120
+ cookie.replace(rdecode, decodeURIComponent);
121
+
122
+ if (this.json) {
123
+ try {
124
+ cookie = JSON.parse(cookie);
125
+ } catch (e) {}
126
+ }
127
+
128
+ if (key === name) {
129
+ result = cookie;
130
+ break;
131
+ }
132
+
133
+ if (!key) {
134
+ result[name] = cookie;
135
+ }
136
+ } catch (e) {}
137
+ }
138
+
139
+ return result;
140
+ }
141
+
142
+ api.set = api;
143
+ api.get = function (key) {
144
+ return api.call(api, key);
145
+ };
146
+ api.getJSON = function () {
147
+ return api.apply({
148
+ json: true
149
+ }, [].slice.call(arguments));
150
+ };
151
+ api.defaults = {};
152
+
153
+ api.remove = function (key, attributes) {
154
+ api(key, '', extend(attributes, {
155
+ expires: -1
156
+ }));
157
+ };
158
+
159
+ api.withConverter = init;
160
+
161
+ return api;
162
+ }
163
+
164
+ return init(function () {});
165
+ }));
@@ -1,3 +1,3 @@
1
1
  module Cd2Tabs
2
- VERSION = '0.1.0'
2
+ VERSION = '0.2.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cd2_tabs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - CD2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-05 00:00:00.000000000 Z
11
+ date: 2017-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -44,6 +44,20 @@ dependencies:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: jquery-rails
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: sqlite3
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -68,6 +82,8 @@ files:
68
82
  - MIT-LICENSE
69
83
  - README.md
70
84
  - Rakefile
85
+ - app/assets/javascripts/cd2_tabs_cookies.js
86
+ - app/assets/javascripts/jscookie.js
71
87
  - app/assets/stylesheets/tabs.sass
72
88
  - lib/cd2_tabs.rb
73
89
  - lib/cd2_tabs/engine.rb
@@ -94,7 +110,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
110
  version: '0'
95
111
  requirements: []
96
112
  rubyforge_project:
97
- rubygems_version: 2.5.1
113
+ rubygems_version: 2.6.6
98
114
  signing_key:
99
115
  specification_version: 4
100
116
  summary: Generates tabs using css