brick 1.0.131 → 1.0.132
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 +4 -4
- data/lib/brick/frameworks/rails/engine.rb +18 -16
- data/lib/brick/frameworks/rails/form_tags.rb +12 -1
- data/lib/brick/version_number.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '08cc0b19ab0838b667534f4de64f3a7045bf395202a3602981a20ececdc91ab5'
|
4
|
+
data.tar.gz: 4b976489a05bb26c3702746700025c6bad3bb930fc129ae897bc9e1596a50901
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 580db611d4ab9e2bf7ab0ed62a90940b90a4818619a9a91788802f017845c0aef3c8da1b01ea8a6a87c8e1af8378dc5c0d030396ebebba05d101b46ca0bd4495
|
7
|
+
data.tar.gz: fe876de91852b7213fa4d35b378935c7f18e18ae09ff5058f0d34b32dcb3c802a15d1c2cc79f63f7b5eac4177b7bbbeae43603e55499447cfee9e1d3556f64fa
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Brick
|
4
4
|
module Rails
|
5
5
|
class << self
|
6
|
-
def display_value(col_type, val)
|
6
|
+
def display_value(col_type, val, lat_lng = nil)
|
7
7
|
is_mssql_geography = nil
|
8
8
|
# Some binary thing that really looks like a Microsoft-encoded WGS84 point? (With the first two bytes, E6 10, indicating an EPSG code of 4326)
|
9
9
|
if col_type == :binary && val && val.length < 31 && (val.length - 6) % 8 == 0 && val[0..5].bytes == [230, 16, 0, 0, 1, 12]
|
@@ -61,14 +61,19 @@ module Brick
|
|
61
61
|
::Brick::Rails.display_binary(val)
|
62
62
|
else
|
63
63
|
if col_type
|
64
|
-
|
64
|
+
if lat_lng
|
65
|
+
# Create a link to this style of Google maps URL: https://www.google.com/maps/place/38.7071296+-121.2810649/@38.7071296,-121.2810649,12z
|
66
|
+
"<a href=\"https://www.google.com/maps/place/#{lat_lng.first}+#{lat_lng.last}/@#{lat_lng.first},#{lat_lng.last},12z\" target=\"blank\">#{val}</a>"
|
67
|
+
else
|
68
|
+
::Brick::Rails::FormBuilder.hide_bcrypt(val, col_type == :xml)
|
69
|
+
end
|
65
70
|
else
|
66
71
|
'?'
|
67
72
|
end
|
68
73
|
end
|
69
74
|
end
|
70
75
|
|
71
|
-
def display_binary(val)
|
76
|
+
def display_binary(val, max_size = 100_000)
|
72
77
|
return unless val
|
73
78
|
|
74
79
|
@image_signatures ||= { (+"\xFF\xD8\xFF\xEE").force_encoding('ASCII-8BIT') => 'jpeg',
|
@@ -94,15 +99,12 @@ module Brick
|
|
94
99
|
val = val[object_start...object_start + real_object_size]
|
95
100
|
end
|
96
101
|
|
97
|
-
if (signature = @image_signatures.find { |k, _v| val[0...k.length] == k }) ||
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
else
|
102
|
-
"< #{signature.last} image, #{val.length} bytes >"
|
103
|
-
end
|
102
|
+
if ((signature = @image_signatures.find { |k, _v| val[0...k.length] == k }&.last) ||
|
103
|
+
(val[0..3] == 'RIFF' && val[8..11] == 'WEBP' && binding.local_variable_set(:signature, 'webp'))) &&
|
104
|
+
val.length < max_size
|
105
|
+
"<img src=\"data:image/#{signature.last};base64,#{Base64.encode64(val)}\">"
|
104
106
|
else
|
105
|
-
"< 
|
107
|
+
"< #{signature ? "#{signature} image" : 'Binary'}, #{val.length} bytes >"
|
106
108
|
end
|
107
109
|
end
|
108
110
|
end
|
@@ -1636,10 +1638,10 @@ end
|
|
1636
1638
|
<tr><td colspan=\"2\">(No displayable fields)</td></tr>
|
1637
1639
|
<% end %>
|
1638
1640
|
</table>#{
|
1639
|
-
"<%=
|
1640
|
-
|
1641
|
-
|
1642
|
-
|
1641
|
+
"<%= begin
|
1642
|
+
::Brick::Rails.display_binary(obj&.blob&.download, 500_000)&.html_safe
|
1643
|
+
rescue
|
1644
|
+
end %>" if model_name == 'ActiveStorage::Attachment'}
|
1643
1645
|
<% end %>
|
1644
1646
|
|
1645
1647
|
#{unless args.first == 'new'
|
@@ -1674,7 +1676,7 @@ end
|
|
1674
1676
|
collection = collection.instance_exec(&assoc.scopes.first) if assoc.scopes.present?
|
1675
1677
|
if assoc.klass.name == 'ActiveStorage::Attachment'
|
1676
1678
|
br_descrip = begin
|
1677
|
-
::Brick::Rails.display_binary(obj.send(assoc.name)&.blob&.download)&.html_safe
|
1679
|
+
::Brick::Rails.display_binary(obj.send(assoc.name)&.blob&.download, 500_000)&.html_safe
|
1678
1680
|
rescue
|
1679
1681
|
end
|
1680
1682
|
end
|
@@ -139,8 +139,19 @@ module Brick::Rails::FormTags
|
|
139
139
|
out << if @_brick_monetized_attributes&.include?(col_name)
|
140
140
|
val ? Money.new(val.to_i).format : ''
|
141
141
|
else
|
142
|
+
lat_lng = if [:float, :decimal].include?(col.type) &&
|
143
|
+
(
|
144
|
+
((col_name == 'latitude' && obj.respond_to?('longitude') && (lng = obj.send('longitude')) && lng.is_a?(Numeric) && (lat = val)) ||
|
145
|
+
(col_name == 'longitude' && obj.respond_to?('latitude') && (lat = obj.send('latitude')) && lat.is_a?(Numeric) && (lng = val))
|
146
|
+
) ||
|
147
|
+
((col_name == 'lat' && obj.respond_to?('lng') && (lng = obj.send('lng')) && lng.is_a?(Numeric) && (lat = val)) ||
|
148
|
+
(col_name == 'lng' && obj.respond_to?('lat') && (lat = obj.send('lat')) && lat.is_a?(Numeric) && (lng = val))
|
149
|
+
)
|
150
|
+
)
|
151
|
+
[lat, lng]
|
152
|
+
end
|
142
153
|
col_type = col&.sql_type == 'geography' ? col.sql_type : col&.type
|
143
|
-
::Brick::Rails.display_value(col_type || col&.sql_type, val).to_s
|
154
|
+
::Brick::Rails.display_value(col_type || col&.sql_type, val, lat_lng).to_s
|
144
155
|
end
|
145
156
|
elsif cust_col
|
146
157
|
data = cust_col.first.map { |cc_part| obj.send(cc_part.last) }
|
data/lib/brick/version_number.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: brick
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.132
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorin Thwaits
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|