c80_features 0.1.3 → 0.1.3.1

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: 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