bmc 1.2.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
  SHA256:
3
- metadata.gz: b9a6a356266f81ad7eb8ea4a4854057b183396375fa8eb0440dc5994e0ba619a
4
- data.tar.gz: 7abd6a5c91201a3c34fd0e56014a19767a6113f55d8865da4d2c6ed79747a9b2
3
+ metadata.gz: dc16d49ff09c9a3ebd6f1404ecd8eed011333e58842f67824adf17897d681f58
4
+ data.tar.gz: 743ab9c8a8fc353bb0758c6071d53e181231f60796c20fe986ff2d5b16a55d9e
5
5
  SHA512:
6
- metadata.gz: d3b50c4e23f67f61f8b9fcbf09af737459b0c5e2aacd97fccc76935b1cac3acecbe388cd630dbe24df11ef15ead5eef6a2f574af98e118e08b561247a7eff392
7
- data.tar.gz: 2739cc1504180bf2ecb05609d90c788e80142cb3986fa6939853ec9c108d12563fb21443b7f715f271d742699a5d14ab827ec4ff80bc47086394064c9884a1d2
6
+ metadata.gz: 7ccc820fbfaf071b33d7bb7ee3e735651491594d4413ab4b0d09fe9bc0cbc2f12e36a4c00ab5676c022615d5b7032d46d9b75bddb4297c0b454ac9775d7da2f1
7
+ data.tar.gz: 3fbf31cfe70e3762536559e1ed79ecdb970987234712c0e67b20739d39d2da54325ec2fd99656ab500e5323f032002c287f2388e11fbe9443157124756f0fdfc
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## v1.3.1
6
+ - Add sorter helpers
7
+
8
+ ## v1.3.0
9
+ - Replace `icon` helper by `fa_s`/`fa_r`/`fa_b` helpers
10
+
11
+ ## v1.2.1
12
+ - Rails 7 + Ruby 3.1 compatibility
13
+
5
14
  ## v1.2.0
6
15
  - Remove FCM
7
16
 
@@ -57,7 +57,7 @@ module BMC::BootstrapHelper
57
57
  end
58
58
 
59
59
  content_tag(card_tag, class: card_classes) do
60
- [header_html, body_html, footer_html].compact.sum
60
+ [header_html, body_html, footer_html].compact.sum("".html_safe)
61
61
  end
62
62
  end
63
63
  end
@@ -26,7 +26,7 @@ module BMC::ButtonHelper
26
26
  )
27
27
  text = ta(action) if text.nil? && action
28
28
 
29
- content = icon(icon).concat(" ").concat(tag.span(text, class: "text"))
29
+ content = fa_s(icon).concat(" ").concat(tag.span(text, class: "text"))
30
30
 
31
31
  if method != :get
32
32
  options[:method] = method
@@ -1,15 +1,23 @@
1
1
  module BMC::FontAwesomeHelper
2
- def icon(id, fa_style: nil, size: nil, spin: false, **options)
3
- id = id.to_s.tr("_", "-").to_sym
2
+ def fa_s(id, **options)
3
+ _bmc_fa_icon(id, fa_style: "fas", **options)
4
+ end
4
5
 
5
- if fa_style.nil?
6
- fa_style = BMC::FontAwesomeHelper.default_fa_style_for_id(id)
7
- end
6
+ def fa_r(id, **options)
7
+ _bmc_fa_icon(id, fa_style: "far", **options)
8
+ end
9
+
10
+ def fa_b(id, **options)
11
+ _bmc_fa_icon(id, fa_style: "fab", **options)
12
+ end
13
+
14
+ def _bmc_fa_icon(id, fa_style: nil, size: nil, spin: false, **options)
15
+ id = id.to_s.tr("_", "-").to_sym
8
16
 
9
17
  css_classes = options.delete(:class).to_s.split
10
18
  css_classes << "icon"
11
19
  css_classes << "fa-#{id}"
12
- css_classes << "fa#{fa_style.to_s[0]}"
20
+ css_classes << fa_style
13
21
  css_classes << "fa-#{size}" if size
14
22
  css_classes << "fa-spin" if spin
15
23
 
@@ -17,51 +25,4 @@ module BMC::FontAwesomeHelper
17
25
 
18
26
  tag.span(**attributes)
19
27
  end
20
-
21
- class << self
22
- def database
23
- @database ||= YAML.safe_load(database_yml).deep_symbolize_keys
24
- end
25
-
26
- def database_path
27
- Rails.root.join("tmp", "fa_database_#{version}.yml")
28
- end
29
-
30
- def database_yml
31
- download_database! unless File.size?(database_path)
32
- File.read(database_path)
33
- end
34
-
35
- def database_url
36
- short_version = version.split(".")[0, 3].join(".") # 1.20.14.2 => 1.20.14
37
- url = "https://raw.githubusercontent.com/FortAwesome/Font-Awesome/#{short_version}/metadata/icons.yml"
38
-
39
- if Gem::Version.new(short_version) < Gem::Version.new("5.6.0")
40
- url = url.gsub("/metadata", "/advanced-options/metadata")
41
- end
42
-
43
- url
44
- end
45
-
46
- def download_database!
47
- require "open-uri"
48
- data = URI.parse(database_url).open.read
49
- File.write(database_path, data)
50
- end
51
-
52
- def version
53
- require "font_awesome/sass/version"
54
- FontAwesome::Sass::VERSION
55
- end
56
-
57
- def default_fa_style_for_id(id)
58
- return if version.start_with?("4")
59
-
60
- if version.start_with?("5")
61
- return BMC::FontAwesomeHelper.database.dig(id, :styles).to_a.first
62
- end
63
-
64
- raise "invalid font-awesome-sass version"
65
- end
66
- end # class << self
67
28
  end
@@ -19,6 +19,6 @@ module BMC::FormHelper
19
19
 
20
20
  return if query_values.empty?
21
21
 
22
- query_values.sum { |k, v| tag.input(type: "hidden", name: k, value: v) }
22
+ query_values.sum("".html_safe) { |k, v| tag.input(type: "hidden", name: k, value: v) }
23
23
  end
24
24
  end
@@ -10,7 +10,7 @@ module BMC::LinkHelper
10
10
  end
11
11
 
12
12
  def icon_link_to(icon, name, options = nil, html_options = nil, &block)
13
- name = icon(icon).concat(" ").concat(name)
13
+ name = fa_s(icon).concat(" ").concat(name)
14
14
  link_to(name, options, html_options, &block)
15
15
  end
16
16
 
@@ -54,8 +54,8 @@ module BMC::TextHelper
54
54
  def boolean_icon(bool)
55
55
  return if bool.nil?
56
56
 
57
- return icon(:check, style: "color: green") if bool == true
58
- return icon(:times, style: "color: red") if bool == false
57
+ return fa_s(:check, style: "color: green") if bool == true
58
+ return fa_s(:times, style: "color: red") if bool == false
59
59
 
60
60
  raise "#{bool} is not a boolean"
61
61
  end
@@ -102,7 +102,7 @@ module BMC::TextHelper
102
102
  container_css_class = ["info", ("blank" if value.blank?)]
103
103
 
104
104
  content_tag(tag, class: container_css_class) do
105
- [html_label, separator_html, html_value].sum
105
+ [html_label, separator_html, html_value].sum("".html_safe)
106
106
  end
107
107
  end # def info
108
108
 
@@ -23,4 +23,26 @@ class BMC::Sorter
23
23
  def self.call(...)
24
24
  new(...).call
25
25
  end
26
+
27
+ private
28
+
29
+ def inverted_direction
30
+ {asc: :desc, desc: :asc}[direction]
31
+ end
32
+
33
+ def joins(...)
34
+ @collection = @collection.joins(...)
35
+ end
36
+
37
+ def left_joins(...)
38
+ @collection = @collection.left_joins(...)
39
+ end
40
+
41
+ def by_column(c = column)
42
+ {c => direction}
43
+ end
44
+
45
+ def by_lower(c = column)
46
+ Arel.sql "LOWER(#{c}) #{direction}"
47
+ end
26
48
  end
@@ -7,7 +7,7 @@ form.search.bs3 method="get" action=action
7
7
 
8
8
  span.input-group-btn
9
9
  button.btn.btn-default.search-reset.reset type="submit"
10
- = icon :times
10
+ = fa_s(:times)
11
11
 
12
12
  button.btn.btn-default.search-submit type="submit"
13
- = icon :search
13
+ = fa_s(:search)
@@ -5,5 +5,5 @@ form.search.bs4 method="get" action=action
5
5
  .input-group.search
6
6
  input.form-control.form-control-sm type="text" name="q" placeholder=ta(:search) value=params[:q]
7
7
  span.input-group-append
8
- button.btn.btn-sm.bg-light.border.search-reset.reset type="submit" = icon(:times)
9
- button.btn.btn-sm.bg-light.border.search-submit type="submit" = icon(:search)
8
+ button.btn.btn-sm.bg-light.border.search-reset.reset type="submit" = fa_s(:times)
9
+ button.btn.btn-sm.bg-light.border.search-submit type="submit" = fa_s(:search)
@@ -4,5 +4,5 @@ form.search.bs5.mb-3 method="get" action=action
4
4
 
5
5
  .input-group.search
6
6
  input.form-control.form-control-sm type="text" name="q" placeholder=ta(:search) value=params[:q]
7
- button.btn.btn-sm.bg-light.border.search-reset.reset type="submit" = icon(:times)
8
- button.btn.btn-sm.bg-light.border.search-submit type="submit" = icon(:search)
7
+ button.btn.btn-sm.bg-light.border.search-reset.reset type="submit" = fa_s(:times)
8
+ button.btn.btn-sm.bg-light.border.search-submit type="submit" = fa_s(:search)
data/lib/bmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BMC
2
- VERSION = "1.2.0"
2
+ VERSION = "1.3.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bmc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoit MARTIN-CHAVE
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-01-04 00:00:00.000000000 Z
11
+ date: 2022-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n
@@ -213,7 +213,7 @@ homepage: https://gitlab.benoitmc.com/pub/bmc
213
213
  licenses:
214
214
  - MIT
215
215
  metadata: {}
216
- post_install_message:
216
+ post_install_message:
217
217
  rdoc_options: []
218
218
  require_paths:
219
219
  - lib
@@ -228,8 +228,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
230
  requirements: []
231
- rubygems_version: 3.1.6
232
- signing_key:
231
+ rubygems_version: 3.3.7
232
+ signing_key:
233
233
  specification_version: 4
234
234
  summary: BMC
235
235
  test_files: []