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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5262e4ca7d3ba03541e0b3e0f633d07f86bb6368
4
- data.tar.gz: 4615057c6bed5b839d542f694b27dbc9f8bf3b7b
3
+ metadata.gz: c009745a9723d00ec1e57f41ab39c08065e31acc
4
+ data.tar.gz: 253bd9b34bd795c055ba54d9a1e85fe49f72f04f
5
5
  SHA512:
6
- metadata.gz: dcb4fa087b9c442ffbe7b8878d50bf704c4fcc8c691883d9b215777fc47e0c817d21dcafe6cbc3830a94104a414a0e87ee628857201a5ed55747609d67a504d5
7
- data.tar.gz: afb485d96a662a3a341a663fc9619edac3f68c2a97b78cf9a5459621a25e2e4eecb1b8362da6dbef2f9b4e2879459c81ffd12b3948e843c6c990c8949eb07a0b
6
+ metadata.gz: 4f8e41af6b412e2d3cc7e0a847dd331084eb0432ee7e11ea5e418acb97761a48915f8a44f2f3527c3d0ea945cfe8f612fb1806d53f9910d6f8602673be8f09cb
7
+ data.tar.gz: 065935428ee17b67e9f63dfd3239a5995c59f50c2a84762023055c205c4c0f34e16f26db342538c2f1206c7adc934a6e09fc303b1debf5dbbf024a599554a8df
@@ -13,7 +13,7 @@ ActiveAdmin.register C80Features::Para, :as => 'Para' do
13
13
  index do
14
14
  selectable_column
15
15
  column :image do |ab|
16
- image_tag("#{ab.image.thumb_fill.url}")
16
+ image_tag("#{ab.image.thumb_preview.url}")
17
17
  end
18
18
  column :title
19
19
  column :content do |about|
@@ -0,0 +1,5 @@
1
+ module C80Features
2
+ class Prop < ActiveRecord::Base
3
+ mount_uploader :image_container_bg, ImageContainerBgUploader
4
+ end
5
+ end
@@ -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
- include CarrierWave::MiniMagick
3
+ module C80Features
5
4
 
6
- storage :file
5
+ # грузит картинку слайдера
6
+ class ParaUploader < CarrierWave::Uploader::Base
7
7
 
8
- def store_dir
9
- "uploads/features"
10
- end
8
+ include CarrierWave::MiniMagick
9
+
10
+ storage :file
11
11
 
12
- def filename
13
- if original_filename
14
- "photo_#{model.id}.#{file.extension}"
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
- # TODO:: размеры картинок вынести в отдельную модель Props
18
+ def store_dir
19
+ 'uploads/features'
20
+ end
19
21
 
20
- process :resize_to_limit => [121,107]
22
+ def filename
23
+ if original_filename
24
+ "image_#{secure_token(4)}.#{file.extension}"
25
+ end
26
+ end
21
27
 
22
- version :thumb_fill do
23
- process :resize_to_fill => [121,107]
24
- end
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
+ })
@@ -1,3 +1,3 @@
1
1
  module C80Features
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.3.1"
3
3
  end
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-06-08 00:00:00.000000000 Z
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