cookei 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6c30540b8b626482ec9d1a6067cb2b96abb108d0cc4f9437ff5068e833719452
4
+ data.tar.gz: ed1141543ed41e304d9108fd578e4e764e761ca81a72ece0cdca7ef772731fe4
5
+ SHA512:
6
+ metadata.gz: 99402979b678191054a541b9593bae41547257a062ace71ac7757d0dcfb7a2ff2700baccfe371f7ac4a3cdbbac2b69338244f68a0709701d9a85fdfd96955910
7
+ data.tar.gz: e9c3b87c11ab36bb330533b7fb4f344fc13ea9a3570f87bbb0d7d42f272e9eaae0ecfbd2c322114ab471ff56ac73409890ec9053c0e1af02c8480146b3fe3389
@@ -0,0 +1,28 @@
1
+ # Cookei
2
+ Short description and motivation.
3
+
4
+ ## Usage
5
+ How to use my plugin.
6
+
7
+ ## Installation
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'cookei'
12
+ ```
13
+
14
+ And then execute:
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+ ```bash
21
+ $ gem install cookei
22
+ ```
23
+
24
+ ## Contributing
25
+ Contribution directions go here.
26
+
27
+ ## License
28
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require 'bundler/setup'
5
+ rescue LoadError
6
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
7
+ end
8
+
9
+ require 'rdoc/task'
10
+
11
+ RDoc::Task.new(:rdoc) do |rdoc|
12
+ rdoc.rdoc_dir = 'rdoc'
13
+ rdoc.title = 'Cookei'
14
+ rdoc.options << '--line-numbers'
15
+ rdoc.rdoc_files.include('README.md')
16
+ rdoc.rdoc_files.include('lib/**/*.rb')
17
+ end
18
+
19
+ APP_RAKEFILE = File.expand_path('test/dummy/Rakefile', __dir__)
20
+ load 'rails/tasks/engine.rake'
21
+
22
+ load 'rails/tasks/statistics.rake'
23
+
24
+ require 'bundler/gem_tasks'
25
+
26
+ require 'rake/testtask'
27
+
28
+ Rake::TestTask.new(:test) do |t|
29
+ t.libs << 'test'
30
+ t.pattern = 'test/**/*_test.rb'
31
+ t.verbose = false
32
+ end
33
+
34
+ task default: :test
@@ -0,0 +1 @@
1
+ //= link_directory ../stylesheets/cookei .css
@@ -0,0 +1,433 @@
1
+ #cookei_disclaimer {
2
+ font-size: 16px;
3
+
4
+ div {
5
+ width: 100%;
6
+ padding: 17px 15px 8px 15px;
7
+ margin-right: auto;
8
+ margin-left: auto;
9
+ }
10
+
11
+ p {
12
+ display: inline;
13
+
14
+ &:first-of-type {
15
+ font-weight: 700;
16
+ margin-right: 4px;
17
+ }
18
+ }
19
+
20
+ a {
21
+ text-decoration: underline;
22
+
23
+ &:hover {
24
+ opacity: 0.8;
25
+ }
26
+ }
27
+
28
+ form {
29
+ margin-top: 5px;
30
+
31
+ label {
32
+ position: relative;
33
+ padding-left: 26px;
34
+ margin-right: 16px;
35
+ margin-top: 9px;
36
+ cursor: pointer;
37
+ -webkit-user-select: none;
38
+ -moz-user-select: none;
39
+ -ms-user-select: none;
40
+ user-select: none;
41
+
42
+ input[type="checkbox"] {
43
+ display: none;
44
+ }
45
+
46
+ input:checked ~ span::after {
47
+ display: block;
48
+ }
49
+
50
+ span {
51
+ position: absolute;
52
+ top: 0;
53
+ left: 0;
54
+ height: 15px;
55
+ width: 15px;
56
+ margin-top: 4px;
57
+
58
+ &::after {
59
+ left: 4px;
60
+ top: 1px;
61
+ width: 5px;
62
+ height: 10px;
63
+ -webkit-transform: rotate(45deg);
64
+ -ms-transform: rotate(45deg);
65
+ transform: rotate(45deg);
66
+ content: "";
67
+ position: absolute;
68
+ display: none;
69
+ }
70
+ }
71
+
72
+ &:hover {
73
+ opacity: 0.8;
74
+ }
75
+
76
+ &[for=required] {
77
+ pointer-events: none;
78
+ opacity: 0.8;
79
+
80
+ span::after {
81
+ opacity: 0.8;
82
+ }
83
+
84
+ &::after {
85
+ opacity: 0.8;
86
+ }
87
+ }
88
+ }
89
+
90
+ .submit {
91
+ padding: 0;
92
+
93
+ input[type="submit"] {
94
+ padding: 3px 4px;
95
+ min-width: 150px;
96
+ font-size: 14px;
97
+ max-height: 30px;
98
+ cursor: pointer;
99
+
100
+ &[name="selected"] {
101
+ background-color: transparent;
102
+ margin-right: 15px;
103
+ }
104
+
105
+ &:hover {
106
+ opacity: 0.8;
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+
113
+ .gray {
114
+ color: #253806;
115
+
116
+ a {
117
+ color: #707070;
118
+
119
+ &:hover {
120
+ color: #707070;
121
+ }
122
+ }
123
+
124
+ label {
125
+ span {
126
+ border: 1px solid #000;
127
+
128
+ &::after {
129
+ border: solid #000;
130
+ border-width: 0 3px 3px 0;
131
+ }
132
+ }
133
+
134
+ &[for=required] {
135
+ span {
136
+ border: 1px solid #9e9e9e;
137
+
138
+ &::after {
139
+ border: solid #9e9e9e;
140
+ border-width: 0 3px 3px 0;
141
+ }
142
+ }
143
+ }
144
+ }
145
+
146
+ input[type="submit"] {
147
+ border: 1px solid #707070;
148
+ background-color: #707070;
149
+ color: #fff;
150
+
151
+ &[name="selected"] {
152
+ color: #253806;
153
+ }
154
+ }
155
+ }
156
+
157
+ .pink {
158
+ color: #777;
159
+ background-color: #ffc4b9;
160
+
161
+ a {
162
+ color: #777;
163
+
164
+ &:hover {
165
+ color: #777;
166
+ }
167
+ }
168
+
169
+ label {
170
+ span {
171
+ border: 1px solid #777;
172
+
173
+ &::after {
174
+ border: solid #777;
175
+ border-width: 0 3px 3px 0;
176
+ }
177
+ }
178
+
179
+ &[for=required] {
180
+ span {
181
+ border: 1px solid #777;
182
+
183
+ &::after {
184
+ border: solid #777;
185
+ border-width: 0 3px 3px 0;
186
+ }
187
+ }
188
+ }
189
+ }
190
+
191
+ input[type="submit"] {
192
+ border: 1px solid #777;
193
+ background-color: #777;
194
+ color: #fff;
195
+
196
+ &[name="selected"] {
197
+ color: #777;
198
+ }
199
+ }
200
+ }
201
+
202
+ .green {
203
+ color: #525252;
204
+
205
+ a {
206
+ color: #94c01a;
207
+
208
+ &:hover {
209
+ color: #94c01a;
210
+ }
211
+ }
212
+
213
+ label {
214
+ span {
215
+ border: 1px solid #525252;
216
+
217
+ &::after {
218
+ border: solid #525252;
219
+ border-width: 0 3px 3px 0;
220
+ }
221
+ }
222
+
223
+ &[for=required] {
224
+ span {
225
+ border: 1px solid #525252;
226
+
227
+ &::after {
228
+ border: solid #525252;
229
+ border-width: 0 3px 3px 0;
230
+ }
231
+ }
232
+ }
233
+ }
234
+
235
+ input[type="submit"] {
236
+ border: 1px solid #94c01a;
237
+ background-color: #94c01a;
238
+ color: #fff;
239
+
240
+ &[name="selected"] {
241
+ color: #525252;
242
+ }
243
+ }
244
+ }
245
+
246
+ .blue {
247
+ color: #fff;
248
+ background-color: #45b1ce;
249
+
250
+ a {
251
+ color: #fff;
252
+
253
+ &:hover {
254
+ color: #fff;
255
+ }
256
+ }
257
+
258
+ label {
259
+ span {
260
+ border: 1px solid #fff;
261
+
262
+ &::after {
263
+ border: solid #fff;
264
+ border-width: 0 3px 3px 0;
265
+ }
266
+ }
267
+
268
+ &[for=required] {
269
+ span {
270
+ border: 1px solid #fff;
271
+
272
+ &::after {
273
+ border: solid #fff;
274
+ border-width: 0 3px 3px 0;
275
+ }
276
+ }
277
+ }
278
+ }
279
+
280
+ input[type="submit"] {
281
+ border: 1px solid #fff;
282
+ background-color: #fff;
283
+ color: #253806;
284
+
285
+ &[name="selected"] {
286
+ color: #fff;
287
+ }
288
+ }
289
+ }
290
+
291
+ .yellow {
292
+ color: #231f20;
293
+
294
+ a {
295
+ color: #231f20;
296
+ font-weight: 700;
297
+
298
+ &:hover {
299
+ color: #231f20;
300
+ }
301
+ }
302
+
303
+ label {
304
+ span {
305
+ border: 2px solid #231f20;
306
+
307
+ &::after {
308
+ border: solid #231f20;
309
+ border-width: 0 3px 3px 0;
310
+ left: 3px;
311
+ top: 0;
312
+ }
313
+ }
314
+
315
+ &[for=required] {
316
+ span {
317
+ border: 2px solid #231f20;
318
+
319
+ &::after {
320
+ border: solid #231f20;
321
+ border-width: 0 3px 3px 0;
322
+ }
323
+ }
324
+ }
325
+ }
326
+
327
+ input[type="submit"] {
328
+ border: 1px solid #ffd400;
329
+ background-color: #ffd400;
330
+ color: #253806;
331
+
332
+ &[name="selected"] {
333
+ color: #231f20;
334
+ }
335
+ }
336
+ }
337
+
338
+ .fixed-top {
339
+ position: fixed;
340
+ top: 0;
341
+ right: 0;
342
+ left: 0;
343
+ z-index: 1030;
344
+ }
345
+
346
+ .fixed-bottom {
347
+ position: fixed;
348
+ right: 0;
349
+ bottom: 0;
350
+ left: 0;
351
+ z-index: 1030;
352
+ }
353
+
354
+ @media (min-width: 576px) {
355
+ #cookei_disclaimer {
356
+ div {
357
+ max-width: 540px;
358
+ }
359
+ }
360
+ }
361
+
362
+ @media (min-width: 768px) {
363
+ #cookei_disclaimer {
364
+ div {
365
+ max-width: 720px;
366
+ }
367
+ }
368
+ }
369
+
370
+ @media (min-width: 992px) {
371
+ #cookei_disclaimer {
372
+ div {
373
+ max-width: 960px;
374
+ }
375
+
376
+ form {
377
+ display: flex;
378
+
379
+ .submit {
380
+ text-align: right;
381
+ }
382
+ }
383
+ }
384
+ }
385
+
386
+ @media (min-width: 1200px) {
387
+ #cookei_disclaimer {
388
+ div {
389
+ max-width: 1140px;
390
+ }
391
+ }
392
+ }
393
+
394
+ @media (max-width: 991px) {
395
+ #cookei_disclaimer {
396
+ padding-bottom: 12px;
397
+ }
398
+ }
399
+
400
+ @media (max-width: 575px) {
401
+ #cookei_disclaimer {
402
+ div {
403
+ padding: 21px 14px 8px 15px;
404
+ }
405
+
406
+ p:first-of-type {
407
+ display: block;
408
+ margin-bottom: 0;
409
+ }
410
+
411
+ form {
412
+ margin-top: 16px;
413
+
414
+ label {
415
+ margin-top: 0;
416
+ margin-bottom: 0;
417
+ }
418
+
419
+ .submit {
420
+ margin-top: 15px;
421
+
422
+ input[type="submit"] {
423
+ min-width: 135px;
424
+ font-size: 13px;
425
+
426
+ &[name="selected"] {
427
+ margin-right: 5px;
428
+ }
429
+ }
430
+ }
431
+ }
432
+ }
433
+ }
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class Api::V1::CookiesController < ApplicationController
6
+ def create
7
+ session[:tracking_settings_set] = true
8
+
9
+ COOKEI_ENABLED_TRACKERS.each do |key, value|
10
+ value.each do |tracker|
11
+ session[tracker] = params[:all] ? true : params[key]
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class ApplicationController < ActionController::Base
6
+ protect_from_forgery with: :exception
7
+ end
8
+ end
9
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ module ApplicationHelper
6
+ end
7
+ end
8
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class ApplicationJob < ActiveJob::Base
6
+ end
7
+ end
8
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class ApplicationMailer < ActionMailer::Base
6
+ default from: 'from@example.com'
7
+ layout 'mailer'
8
+ end
9
+ end
10
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class ApplicationRecord < ActiveRecord::Base
6
+ self.abstract_class = true
7
+ end
8
+ end
9
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,38 @@
1
+ <%- unless session[:tracking_settings_set] %>
2
+ <div id="cookei_disclaimer" class="<%= COOKEI_STYLE %> <%= COOKEI_POSITION %>">
3
+ <div>
4
+ <%= t('cookei.disclaimer.text_html') %>
5
+ <%= link_to t('cookei.disclaimer.read_more'), COOKEI_POLICY_URL %>
6
+ <%= form_with(url: cookei.api_v1_cookies_path, method: :post, data: { remote: true }) do %>
7
+ <%= label_tag :required do %>
8
+ <%= check_box_tag(:required, :required, checked: true) %>
9
+ <span></span>
10
+ <%= t('cookei.disclaimer.labels.required') %>
11
+ <%- end %>
12
+
13
+ <%- COOKEI_ENABLED_TRACKERS.each do |key, value| %>
14
+ <%- next if key == :required %>
15
+ <%- next if value.size.zero? %>
16
+ <%- sym_key = key.to_sym %>
17
+ <%= label_tag sym_key do %>
18
+ <%= check_box_tag(sym_key) %>
19
+ <span></span>
20
+ <%= t("cookei.disclaimer.labels.#{sym_key}") %>
21
+ <%- end %>
22
+ <% end %>
23
+
24
+ <div class="submit">
25
+ <%= submit_tag(t('cookei.disclaimer.buttons.accept_selected'), name: 'selected') %>
26
+ <%= submit_tag(t('cookei.disclaimer.buttons.accept_all'), name: 'all') %>
27
+ </div>
28
+ <% end %>
29
+ </div>
30
+ </div>
31
+ <%- end %>
32
+
33
+ <%- COOKEI_ENABLED_TRACKERS.each do |key, value| %>
34
+ <%- value.each do |tracker| %>
35
+ <%- next unless session[tracker] %>
36
+ <%= render "cookei/tracking/#{key}/#{tracker}" %>
37
+ <%- end %>
38
+ <%- end %>
@@ -0,0 +1 @@
1
+ document.getElementById('cookei_disclaimer').style.display = 'none';
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Cookei</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag "cookei/application", media: "all" %>
9
+ </head>
10
+ <body>
11
+
12
+ <%= yield %>
13
+
14
+ </body>
15
+ </html>
@@ -0,0 +1,16 @@
1
+ COOKEI_ENABLED_TRACKERS = {
2
+ required: [],
3
+ preferences: [],
4
+ statistics: [:google_analytics ],
5
+ marketing: [:google_adsense]
6
+ }
7
+
8
+ COOKEI_POLICY_URL = '/cookie-policy'
9
+
10
+ # available styles
11
+ # gray pink green blue yellow
12
+ COOKEI_STYLE = 'gray'
13
+
14
+ # availabel position
15
+ # fixed-top fixed-bottom
16
+ COOKEI_POSITION = ''
@@ -0,0 +1,13 @@
1
+ en:
2
+ cookei:
3
+ disclaimer:
4
+ labels:
5
+ required: 'Required'
6
+ preferences: 'Preferences'
7
+ statistics: 'Statistics'
8
+ marketing: 'Marketing'
9
+ text_html: <p>This site uses cookies.</p><p>We use cookies to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners who may combine it with other information that you’ve provided to them or that they’ve collected from your use of their services.</p>
10
+ read_more: 'Read more in our cookie policy.'
11
+ buttons:
12
+ accept_all: 'Accept All'
13
+ accept_selected: 'Accept Selected'
@@ -0,0 +1,13 @@
1
+ fi:
2
+ cookei:
3
+ disclaimer:
4
+ labels:
5
+ required: 'vaaditaan'
6
+ preferences: 'asetukset'
7
+ statistics: 'tilastot'
8
+ marketing: 'markkinointi'
9
+ text_html: <p>Käytämme evästeitä verkkosivullamme parantaaksemme kävijöidemme käyttökokemusta.</p><p>Käyttämällä verkkosivustoltamme hyväksyt evästeidemme käytön tietosuojakäytännön mukaisesti.</p>
10
+ read_more: 'Lue lisää'
11
+ buttons:
12
+ accept_all: 'Hyväksy kaikki'
13
+ accept_selected: 'Hyväksy valittu'
@@ -0,0 +1,13 @@
1
+ lv:
2
+ cookei:
3
+ disclaimer:
4
+ labels:
5
+ required: 'Obligātās'
6
+ preferences: 'Uzstādījumi'
7
+ statistics: 'Statistika'
8
+ marketing: 'Mārketings'
9
+ text_html: <p>Mēs izmantojam sīkdatnes.</p><p>Sīkdatnes tiek izmantotas lai personalizētu saturu un reklāmas, lai nodrošinātu sociālo mediju funkcijas un analizētu mūsu lapas apmeklējumu. Mēs dalāmies ar informāciju par to, kā izmantojat mūsu vietni, ar mūsu sociālo mediju, reklāmas un analīzes partneriem, kuri to var apvienot ar citu tiem pieejamu informāciju.</p>
10
+ read_more: 'Vairāk mūsu sīkdatņu politikā.'
11
+ buttons:
12
+ accept_all: 'Akceptēt visu'
13
+ accept_selected: 'Akceptēt atzīmētos'
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ Cookei::Engine.routes.draw do
4
+ namespace :api do
5
+ namespace :v1 do
6
+ resources :cookies, only: [:create], constraints: { format: 'js' }
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'cookei/engine'
4
+
5
+ module Cookei
6
+ # Your code goes here...
7
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ # rubocop:disable Style/ClassAndModuleChildren
4
+ module Cookei
5
+ class Engine < ::Rails::Engine
6
+ isolate_namespace Cookei
7
+ end
8
+ end
9
+ # rubocop:enable Style/ClassAndModuleChildren
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cookei
4
+ VERSION = '0.2.4'
5
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ # desc "Explaining what the task does"
4
+ # task :cookei do
5
+ # # Task goes here
6
+ # end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cookei
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - Artis Raugulis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2020-09-08 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rspec
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-rails
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rubocop
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop-rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: A simple way to add cookie disclaimer.
98
+ email:
99
+ - artis@devart.lv
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - README.md
105
+ - Rakefile
106
+ - app/assets/config/cookei_manifest.js
107
+ - app/assets/stylesheets/cookei.scss
108
+ - app/controllers/cookei/api/v1/cookies_controller.rb
109
+ - app/controllers/cookei/application_controller.rb
110
+ - app/helpers/cookei/application_helper.rb
111
+ - app/jobs/cookei/application_job.rb
112
+ - app/mailers/cookei/application_mailer.rb
113
+ - app/models/cookei/application_record.rb
114
+ - app/views/cookei/api/v1/cookies/_disclaimer.html.erb
115
+ - app/views/cookei/api/v1/cookies/create.js.erb
116
+ - app/views/cookei/tracking/marketing/_google_adsense.html.erb
117
+ - app/views/cookei/tracking/statistics/_google_analytics.html.erb
118
+ - app/views/layouts/cookei/application.html.erb
119
+ - config/initializers/cookei.rb
120
+ - config/locales/en.yml
121
+ - config/locales/fi.yml
122
+ - config/locales/lv.yml
123
+ - config/routes.rb
124
+ - lib/cookei.rb
125
+ - lib/cookei/engine.rb
126
+ - lib/cookei/version.rb
127
+ - lib/tasks/cookei_tasks.rake
128
+ homepage: https://devart.lv
129
+ licenses:
130
+ - license-0.0.1
131
+ metadata: {}
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: 2.7.0
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements: []
147
+ rubygems_version: 3.1.2
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: A simple way to add cookie disclaimer
151
+ test_files: []