bmc 1.1.0 → 1.3.0

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: 610c3313a3499ea6c4b1ab3b3d801ee892cfcce32e5adacf8b935a2032506f71
4
- data.tar.gz: 0db6265466d7b9f388b2a73b299b51b138fde69c89b08a67f8bc9fb67cef405d
3
+ metadata.gz: 8059c6df5d1948303e20ec0771f1d379880a9c9a771d7c92b27432bce595f4c6
4
+ data.tar.gz: 6497a08bed10f80364780ee870aafe69e6bbc4ff8cff232ac74da63715d7c99c
5
5
  SHA512:
6
- metadata.gz: acc8116f3b1beff954b12fe0558aa3023172f5e8720316b8dd3f851b60258f774a2d002fd72c84a5fbe1f65c3c6761c967bef7e38f32e5a79c61625fe6e9fd36
7
- data.tar.gz: 915fe7c88c4c6d7b201a9a8b70482207cf6f2b55a80222602825ebf33ceae0ebf0a0f0bf38dfe8d4781de2d20e40ff09b6b0ea32c5bec05c03afd9a480d9c4ce
6
+ metadata.gz: cf4d0096587ce7ebaefbead1b4c1fbd527cd4a97ae9c36f7d9db90d9042e9142932b7e090234d2184387c6d6ed2dd9a8df731a7f638090720f101b813b05c412
7
+ data.tar.gz: 2955d4e545a15c05216d45cfed14be03a209288abb80ec3798cbf5218e3f76a81ef7a4e34fe1b17a4dd85e14d8049cbb1ecb8620b19dc3fdb60d658ee42432b6
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## v1.3.0
6
+ - Replace `icon` helper by `fa_s`/`fa_r`/`fa_b` helpers
7
+
8
+ ## v1.2.1
9
+ - Rails 7 + Ruby 3.1 compatibility
10
+
11
+ ## v1.2.0
12
+ - Remove FCM
13
+
5
14
  ## v1.1.0
6
15
  - SMS strategies rewrite
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
 
@@ -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/engine.rb CHANGED
@@ -12,7 +12,6 @@ module BMC
12
12
  initializer "inflections" do
13
13
  ActiveSupport::Inflector.inflections(:en) do |inflect|
14
14
  inflect.acronym "BMC"
15
- inflect.acronym "FCM"
16
15
  inflect.acronym "SMS"
17
16
  inflect.acronym "UUID"
18
17
  inflect.acronym "XLSX"
data/lib/bmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BMC
2
- VERSION = "1.1.0"
2
+ VERSION = "1.3.0"
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.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - agilidée
7
+ - Benoit MARTIN-CHAVE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-09 00:00:00.000000000 Z
11
+ date: 2022-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n
@@ -150,8 +150,6 @@ files:
150
150
  - app/jobs/bmc/application_job.rb
151
151
  - app/jobs/concerns/bmc/setup_job_concern.rb
152
152
  - app/libs/bmc/collection_update.rb
153
- - app/libs/bmc/fcm/notifier.rb
154
- - app/libs/bmc/fcm/request.rb
155
153
  - app/libs/bmc/mini_model_serializer/serialize.rb
156
154
  - app/libs/bmc/mini_model_serializer/serializer.rb
157
155
  - app/libs/bmc/monkey.rb
@@ -230,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
230
228
  - !ruby/object:Gem::Version
231
229
  version: '0'
232
230
  requirements: []
233
- rubygems_version: 3.1.6
231
+ rubygems_version: 3.3.7
234
232
  signing_key:
235
233
  specification_version: 4
236
234
  summary: BMC
@@ -1,32 +0,0 @@
1
- class BMC::FCM::Notifier
2
- attr_reader :to, :title, :body, :badge, :sound, :data
3
-
4
- # rubocop:disable Metrics/ParameterLists
5
- def initialize(to:, title: nil, body:, badge: 0, sound: "default", data: {})
6
- super()
7
- @to = to
8
- @title = title
9
- @body = body
10
- @badge = badge
11
- @sound = sound
12
- @data = data
13
- end
14
- # rubocop:enable Metrics/ParameterLists
15
-
16
- def call
17
- BMC::FCM::Request.call(
18
- :to => to,
19
- :notification => {
20
- :title => title,
21
- :body => body,
22
- :badge => badge,
23
- :sound => sound,
24
- },
25
- :data => data,
26
- )
27
- end
28
-
29
- def self.call(...)
30
- new(...).call
31
- end
32
- end
@@ -1,54 +0,0 @@
1
- class BMC::FCM::Request
2
- extend AttrExtras.mixin
3
-
4
- URL = "https://fcm.googleapis.com/fcm/send"
5
-
6
- class << self
7
- attr_writer :api_key
8
-
9
- def api_key
10
- @api_key ||= ENV["FCM_API_KEY"]
11
- end
12
- end
13
-
14
- attr_reader_initialize :request_body
15
-
16
- attr_reader :response_json
17
-
18
- def self.call(...)
19
- new(...).call
20
- end
21
-
22
- def call
23
- response_body = HTTParty.post(URL,
24
- :body => request_body.to_json,
25
- :headers => {
26
- "Content-Type" => "application/json",
27
- "Authorization" => "key=#{self.class.api_key}",
28
- },
29
- ).body
30
-
31
- @response_json = JSON.parse(response_body).deep_symbolize_keys
32
-
33
- self
34
- rescue JSON::ParserError
35
- @response_json = {success: 0, failure: 1, results: [{:error => "InvalidJsonResponse"}]}
36
- self
37
- end
38
-
39
- def ok?
40
- response_json[:success].positive? && response_json[:failure].zero?
41
- end
42
-
43
- def error?
44
- !ok?
45
- end
46
-
47
- def errors
48
- response_json[:results].pluck(:error).compact
49
- end
50
-
51
- def invalid_token?
52
- errors.include?("NotRegistered") || errors.include?("InvalidRegistration")
53
- end
54
- end