c80_features 0.1.3 → 0.1.3.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/admin/c80_features/paras.rb +1 -1
- data/app/models/c80_features/prop.rb +5 -0
- data/app/uploaders/c80_features/image_container_bg_uploader.rb +102 -0
- data/app/uploaders/c80_features/para_uploader.rb +69 -18
- data/db/migrate/20161002170707_create_c80_features_props.rb +16 -0
- data/db/seeds/c80_features_01_fill_props.rb +14 -0
- data/lib/c80_features/version.rb +1 -1
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c009745a9723d00ec1e57f41ab39c08065e31acc
|
4
|
+
data.tar.gz: 253bd9b34bd795c055ba54d9a1e85fe49f72f04f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f8e41af6b412e2d3cc7e0a847dd331084eb0432ee7e11ea5e418acb97761a48915f8a44f2f3527c3d0ea945cfe8f612fb1806d53f9910d6f8602673be8f09cb
|
7
|
+
data.tar.gz: 065935428ee17b67e9f63dfd3239a5995c59f50c2a84762023055c205c4c0f34e16f26db342538c2f1206c7adc934a6e09fc303b1debf5dbbf024a599554a8df
|
@@ -0,0 +1,102 @@
|
|
1
|
+
# загрузка картинки для фона блока, в котором содержится контент виджета "преимущества"
|
2
|
+
module C80Features
|
3
|
+
|
4
|
+
# грузит картинку слайдера
|
5
|
+
class ImageContainerBgUploader < CarrierWave::Uploader::Base
|
6
|
+
|
7
|
+
include CarrierWave::MiniMagick
|
8
|
+
|
9
|
+
storage :file
|
10
|
+
|
11
|
+
process :resize_to_limit_my
|
12
|
+
|
13
|
+
version :thumb_big do
|
14
|
+
process :resize_to_big_by_width
|
15
|
+
end
|
16
|
+
|
17
|
+
version :thumb_preview do
|
18
|
+
process :resize_to_preview
|
19
|
+
end
|
20
|
+
|
21
|
+
def store_dir
|
22
|
+
'uploads/features/bg'
|
23
|
+
end
|
24
|
+
|
25
|
+
def filename
|
26
|
+
if original_filename
|
27
|
+
"image_#{secure_token(4)}.#{file.extension}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def resize_to_limit_my
|
32
|
+
|
33
|
+
manipulate! do |img|
|
34
|
+
|
35
|
+
# извлекаем ширину и подгоняем высоту
|
36
|
+
w = C80Features::Prop.first.bg_image_limit_width
|
37
|
+
h = C80Features::Prop.first.bg_image_limit_height
|
38
|
+
|
39
|
+
# меняем размер
|
40
|
+
img.resize "#{w}x#{h}<"
|
41
|
+
img = yield(img) if block_given?
|
42
|
+
img
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# меням размер оригинальной картинки, подгоняя её к требуемой ширине (высота рассчитается автоматом)
|
48
|
+
def resize_to_big_by_width
|
49
|
+
|
50
|
+
manipulate! do |img|
|
51
|
+
|
52
|
+
# извлекаем ширину и подгоняем высоту
|
53
|
+
w = C80Features::Prop.first.bg_big_width
|
54
|
+
h = calc_height_of_image(w)
|
55
|
+
|
56
|
+
# меняем размер
|
57
|
+
img.resize "#{w}x#{h}<"
|
58
|
+
img = yield(img) if block_given?
|
59
|
+
img
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
# пока используется только для показа картинки в админке
|
66
|
+
def resize_to_preview
|
67
|
+
manipulate! do |img|
|
68
|
+
|
69
|
+
w = C80Features::Prop.first.bg_preview_width
|
70
|
+
h = C80Features::Prop.first.bg_preview_height
|
71
|
+
|
72
|
+
img.resize "#{w}x#{h}>"
|
73
|
+
img = yield(img) if block_given?
|
74
|
+
img
|
75
|
+
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
protected
|
80
|
+
|
81
|
+
def secure_token(length=16)
|
82
|
+
var = :"@#{mounted_as}_secure_token"
|
83
|
+
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2))
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
# рассчитаем высоту картинки, которая получится, когда подгоняем картинку по ширине w
|
89
|
+
def calc_height_of_image(w)
|
90
|
+
model_image = ::MiniMagick::Image.open(model.image.current_path)
|
91
|
+
calc_height(w, model_image["width"], model_image["height"])
|
92
|
+
end
|
93
|
+
|
94
|
+
# подгоняем по ширине, рассчитываем высоту
|
95
|
+
def calc_height(width, original_w, original_h)
|
96
|
+
k = width.to_f/original_w
|
97
|
+
original_h * k
|
98
|
+
end
|
99
|
+
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
@@ -1,30 +1,81 @@
|
|
1
1
|
# загрузка иконок в блоки "о нас"
|
2
|
-
class C80Features::ParaUploader < CarrierWave::Uploader::Base
|
3
2
|
|
4
|
-
|
3
|
+
module C80Features
|
5
4
|
|
6
|
-
|
5
|
+
# грузит картинку слайдера
|
6
|
+
class ParaUploader < CarrierWave::Uploader::Base
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
include CarrierWave::MiniMagick
|
9
|
+
|
10
|
+
storage :file
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
12
|
+
process :resize_to_limit_my
|
13
|
+
|
14
|
+
version :thumb_preview do
|
15
|
+
process :resize_to_preview
|
15
16
|
end
|
16
|
-
end
|
17
17
|
|
18
|
-
|
18
|
+
def store_dir
|
19
|
+
'uploads/features'
|
20
|
+
end
|
19
21
|
|
20
|
-
|
22
|
+
def filename
|
23
|
+
if original_filename
|
24
|
+
"image_#{secure_token(4)}.#{file.extension}"
|
25
|
+
end
|
26
|
+
end
|
21
27
|
|
22
|
-
|
23
|
-
|
24
|
-
|
28
|
+
def resize_to_limit_my
|
29
|
+
|
30
|
+
manipulate! do |img|
|
31
|
+
|
32
|
+
# извлекаем ширину и подгоняем высоту
|
33
|
+
w = C80Features::Prop.first.para_image_limit_width
|
34
|
+
h = C80Features::Prop.first.para_image_limit_height
|
35
|
+
|
36
|
+
# меняем размер
|
37
|
+
img.resize "#{w}x#{h}<"
|
38
|
+
img = yield(img) if block_given?
|
39
|
+
img
|
40
|
+
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# пока используется только для показа картинки в админке
|
45
|
+
def resize_to_preview
|
46
|
+
manipulate! do |img|
|
47
|
+
|
48
|
+
w = C80Features::Prop.first.para_preview_width
|
49
|
+
h = C80Features::Prop.first.para_preview_height
|
50
|
+
|
51
|
+
img.resize "#{w}x#{h}>"
|
52
|
+
img = yield(img) if block_given?
|
53
|
+
img
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
protected
|
59
|
+
|
60
|
+
def secure_token(length=16)
|
61
|
+
var = :"@#{mounted_as}_secure_token"
|
62
|
+
model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2))
|
63
|
+
end
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
# рассчитаем высоту картинки, которая получится, когда подгоняем картинку по ширине w
|
68
|
+
def calc_height_of_image(w)
|
69
|
+
model_image = ::MiniMagick::Image.open(model.image.current_path)
|
70
|
+
calc_height(w, model_image["width"], model_image["height"])
|
71
|
+
end
|
72
|
+
|
73
|
+
# подгоняем по ширине, рассчитываем высоту
|
74
|
+
def calc_height(width, original_w, original_h)
|
75
|
+
k = width.to_f/original_w
|
76
|
+
original_h * k
|
77
|
+
end
|
25
78
|
|
26
|
-
version :thumb_fit do
|
27
|
-
process :resize_to_fit => [121,107]
|
28
79
|
end
|
29
80
|
|
30
|
-
end
|
81
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class CreateC80FeaturesProps < ActiveRecord::Migration
|
2
|
+
def change
|
3
|
+
create_table :c80_features_props, :options => 'COLLATE=utf8_unicode_ci' do |t|
|
4
|
+
t.integer :bg_image_limit_width
|
5
|
+
t.integer :bg_image_limit_height
|
6
|
+
t.integer :bg_big_width
|
7
|
+
t.integer :bg_preview_width
|
8
|
+
t.integer :bg_preview_height
|
9
|
+
t.integer :para_image_limit_width
|
10
|
+
t.integer :para_image_limit_height
|
11
|
+
t.integer :para_preview_width
|
12
|
+
t.integer :para_preview_height
|
13
|
+
t.string :image_container_bg
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# rake db:seed:c80_features_01_fill_props
|
2
|
+
|
3
|
+
C80Features::Prop.delete_all
|
4
|
+
C80Features::Prop.create!({
|
5
|
+
bg_image_limit_width:1600,
|
6
|
+
bg_image_limit_height:1600,
|
7
|
+
bg_big_width: 1600,
|
8
|
+
bg_preview_width: 400,
|
9
|
+
bg_preview_height: 280,
|
10
|
+
para_image_limit_width:300,
|
11
|
+
para_image_limit_height:300,
|
12
|
+
para_preview_width: 300,
|
13
|
+
para_preview_height: 300
|
14
|
+
})
|
data/lib/c80_features/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: c80_features
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.3
|
4
|
+
version: 0.1.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- C80609A
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -106,6 +106,8 @@ files:
|
|
106
106
|
- app/helpers/c80_features/application_helper.rb
|
107
107
|
- app/models/c80_features/para.rb
|
108
108
|
- app/models/c80_features/para_validator.rb
|
109
|
+
- app/models/c80_features/prop.rb
|
110
|
+
- app/uploaders/c80_features/image_container_bg_uploader.rb
|
109
111
|
- app/uploaders/c80_features/para_uploader.rb
|
110
112
|
- app/views/c80_features/_features_block.html.erb
|
111
113
|
- app/views/c80_features/_features_block_with_images.html.erb
|
@@ -115,6 +117,8 @@ files:
|
|
115
117
|
- c80_features.gemspec
|
116
118
|
- config/locales/ru.yml
|
117
119
|
- db/migrate/20151216132727_create_c80_features_paras.rb
|
120
|
+
- db/migrate/20161002170707_create_c80_features_props.rb
|
121
|
+
- db/seeds/c80_features_01_fill_props.rb
|
118
122
|
- lib/c80_features.rb
|
119
123
|
- lib/c80_features/engine.rb
|
120
124
|
- lib/c80_features/version.rb
|