agilibox 1.9.5 → 1.9.10

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: 70cf28216c3454232717705c0f856cbbcc9c7afe64a64940031e37c244e087ca
4
- data.tar.gz: 4b69d768141760b3aa70b2bbecad849a359fe6e5c4e3d312971f5f648a7187b4
3
+ metadata.gz: ef22857fe40bc1f1f2784bc4ee30f004dfbef4813ca38901b77ec28d27565f45
4
+ data.tar.gz: b107e6d93659b93399d5cedaafad060ee7acdecfc342397d2aac796ba61050a0
5
5
  SHA512:
6
- metadata.gz: b895a6a5d99124b9a8fa3e7185e949b426bbe90c134441dbf1ee7e5329f8b10609ab40a3420f2067941158e9821c08a1ea1145fe8394506f7306bd309946c8ed
7
- data.tar.gz: fc304783878fcfe3bfaad9d452d299ace65059046244cbe5ec0aa526107b23fe957869d26c1c39dbf306bcc755d8a1d71cea297dd42123d522b8b15b4a56bca9
6
+ metadata.gz: 1705f009f619fd427478ef8cc8f875229dcb8648363c085e3b43594f553fcb60a753974ca6e6cf7125fc11401ece9d3ac6dc7f8025b4c3af3fe2405483c0d507
7
+ data.tar.gz: 6dda6ceaa7aac2a49e8388faeaac9b2bb96a4de48359aa2f7e42d4d1d8a60d6cbb69e8eb299453b0a1d755402475363a4a760a4989a772981cc32cc62d9cae7b
@@ -2,6 +2,22 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## v1.9.10
6
+ - Fix some Ruby 2.7 warnings
7
+
8
+ ## v1.9.9
9
+ - Add error to ErrorsMiddleware
10
+
11
+ ## v1.9.8
12
+ - Fix `tags` helper
13
+
14
+ ## v1.9.7
15
+ - Change XLSX export
16
+
17
+ ## v1.9.6
18
+ - Fix info helper with false
19
+ - Update Rubocop + fix offences
20
+
5
21
  ## 1.9.5
6
22
  - Fix warnings on Rails 6
7
23
 
@@ -37,7 +37,7 @@ module Agilibox::ApiControllerConcern
37
37
  end
38
38
 
39
39
  def json_error_string_for_model(object)
40
- json_errors_hash_for_model(object).values.map { |e| e[:full_message] }.join(", ")
40
+ json_errors_hash_for_model(object).values.pluck(:full_message).join(", ")
41
41
  end
42
42
 
43
43
  def render_not_found
@@ -43,7 +43,7 @@ class Agilibox::SmallData::Filter
43
43
  end
44
44
 
45
45
  def respond_to_missing?(method, *)
46
- strategies.key?(method.to_s) || strategies.key?(method.to_s.chomp("="))
46
+ super || strategies.key?(method.to_s) || strategies.key?(method.to_s.chomp("="))
47
47
  end
48
48
 
49
49
  def read
@@ -2,6 +2,7 @@ class Agilibox::SmallData::FilterStrategyByKeyValue < ::Agilibox::SmallData::Fil
2
2
  attr_reader :key
3
3
 
4
4
  def initialize(key = nil)
5
+ super()
5
6
  @key = key
6
7
  end
7
8
 
@@ -13,8 +13,8 @@ module Agilibox::BootstrapHelper
13
13
  end
14
14
 
15
15
  def bs_progress_bar(percentage)
16
- content_tag(:div, class: "progress") do
17
- content_tag(:div, class: "progress-bar", style: "width:#{percentage}%") do
16
+ tag.div(class: "progress") do
17
+ tag.div(class: "progress-bar", style: "width:#{percentage}%") do
18
18
  "#{percentage}%"
19
19
  end
20
20
  end
@@ -7,7 +7,7 @@ module Agilibox::FiltersHelper
7
7
  text = options.delete(:text) || t("actions.filter")
8
8
  icon = options.delete(:icon) || :filter
9
9
 
10
- content_tag(:button, options) do
10
+ tag.button(**options) do
11
11
  icon(icon) + " " + text
12
12
  end
13
13
  end
@@ -20,7 +20,7 @@ module Agilibox::FiltersHelper
20
20
  text = options.delete(:text) || t("actions.reset")
21
21
  icon = options.delete(:icon) || :undo
22
22
 
23
- content_tag(:button, options) do
23
+ tag.button(**options) do
24
24
  icon(icon) + " " + text
25
25
  end
26
26
  end
@@ -15,7 +15,7 @@ module Agilibox::FontAwesomeHelper
15
15
 
16
16
  attributes = options.merge(class: css_classes.sort.join(" ")).sort.to_h
17
17
 
18
- content_tag(:span, attributes) {}
18
+ tag.span(**attributes) {}
19
19
  end
20
20
 
21
21
  class << self
@@ -21,13 +21,13 @@ module Agilibox::FormHelper
21
21
  submit_action = :save
22
22
  end
23
23
 
24
- content_tag("div", class: "actions form-actions") do
25
- submit = content_tag(:button, type: :submit, class: "btn btn-sm btn-success form-submit") do
26
- content_tag(:span, class: "fa fa-save") {} + " " + ta(submit_action)
24
+ tag.div(class: "actions form-actions") do
25
+ submit = tag.button(type: :submit, class: "btn btn-sm btn-success form-submit") do
26
+ tag.span(class: "fa fa-save") {} + " " + ta(submit_action)
27
27
  end
28
28
 
29
- cancel = content_tag("a", href: back_url, class: "btn btn-primary btn-sm form-cancel") do
30
- content_tag(:span, class: "fa fa-times") {} + " " + ta(:cancel)
29
+ cancel = tag.a(href: back_url, class: "btn btn-primary btn-sm form-cancel") do
30
+ tag.span(class: "fa fa-times") {} + " " + ta(:cancel)
31
31
  end
32
32
 
33
33
  cancel = "" if back_url == false
@@ -1,11 +1,11 @@
1
1
  module Agilibox::PaginationHelper
2
2
  def paginate(objects, options = {})
3
3
  options = {theme: "twitter-bootstrap-3"}.merge(options)
4
- super(objects, options).gsub(/>(\s+)</, "><").html_safe
4
+ super(objects, **options).gsub(/>(\s+)</, "><").html_safe
5
5
  end
6
6
 
7
7
  def pagination_infos(collection)
8
- content_tag(:p, class: "pagination-infos") { page_entries_info(collection) }
8
+ tag.p(class: "pagination-infos") { page_entries_info(collection) }
9
9
  end
10
10
 
11
11
  def pagination_and_infos(collection)
@@ -47,8 +47,8 @@ module Agilibox::TextHelper
47
47
  number_with_precision(n, opts).tr(" ", nbsp)
48
48
  end
49
49
 
50
- def date(d, *args)
51
- I18n.l(d, *args) unless d.nil?
50
+ def date(d, **args)
51
+ I18n.l(d, **args) unless d.nil?
52
52
  end
53
53
 
54
54
  def boolean_icon(bool)
@@ -93,13 +93,16 @@ module Agilibox::TextHelper
93
93
  value = value_or_options
94
94
  end
95
95
 
96
+ value = t("yes") if value == true
97
+ value = t("no") if value == false
98
+
96
99
  if value.blank?
97
100
  value = options[:default]
98
101
  return if value == :hide
99
102
  end
100
103
 
101
104
  label = options[:label] || object.t(attribute)
102
- tag = options[:tag] || :div
105
+ info_tag = options[:tag] || :div
103
106
  separator = options[:separator] || " : "
104
107
  separator = " :<br/>".html_safe if separator == :br
105
108
  helper = options[:helper]
@@ -108,8 +111,6 @@ module Agilibox::TextHelper
108
111
  klass = object.is_a?(Module) ? object : object.class
109
112
  object_type = klass.to_s.split("::").last.underscore
110
113
 
111
- value = t("yes") if value == true
112
- value = t("no") if value == false
113
114
  value = object.tv(attribute) if nested
114
115
  value = send(helper, value) if helper
115
116
  value = number(value) if value.is_a?(Numeric)
@@ -117,10 +118,10 @@ module Agilibox::TextHelper
117
118
  value = l(value) if value.is_a?(Date)
118
119
  value = value.to_s
119
120
 
120
- html_label = content_tag(:strong, class: "info-label") { label }
121
+ html_label = tag.strong(class: "info-label") { label }
121
122
  span_css_class = "info-value #{object_type}-#{attribute}"
122
- html_value = content_tag(:span, class: span_css_class) { value }
123
- separator_html = content_tag(:span, class: "info-separator") { separator }
123
+ html_value = tag.span(class: span_css_class) { value }
124
+ separator_html = tag.span(class: "info-separator") { separator }
124
125
 
125
126
  if value.blank?
126
127
  container_css_class = "info blank"
@@ -128,7 +129,7 @@ module Agilibox::TextHelper
128
129
  container_css_class = "info"
129
130
  end
130
131
 
131
- content_tag(tag, class: container_css_class) do
132
+ content_tag(info_tag, class: container_css_class) do
132
133
  [html_label, separator_html, html_value].join.html_safe
133
134
  end
134
135
  end # def info
@@ -137,9 +138,9 @@ module Agilibox::TextHelper
137
138
  def tags(object)
138
139
  return "" if object.tag_list.empty?
139
140
 
140
- object.tag_list.map { |tag|
141
- content_tag(:span, class: "tag label label-primary") {
142
- "#{icon :tag} #{tag}".html_safe
141
+ object.tag_list.map { |tag_name|
142
+ tag.span(class: "tag label label-primary") {
143
+ "#{icon :tag} #{tag_name}".html_safe
143
144
  }
144
145
  }.join(" ").html_safe
145
146
  end
@@ -3,6 +3,7 @@ class Agilibox::FCM::Notifier < Agilibox::Service
3
3
 
4
4
  # rubocop:disable Metrics/ParameterLists
5
5
  def initialize(to:, title: nil, body:, badge: 0, sound: "default", data: {})
6
+ super()
6
7
  @to = to
7
8
  @title = title
8
9
  @body = body
@@ -39,7 +39,7 @@ class Agilibox::FCM::Request < Agilibox::Service
39
39
  end
40
40
 
41
41
  def errors
42
- response_json[:results].map { |r| r[:error] }.compact
42
+ response_json[:results].pluck(:error).compact
43
43
  end
44
44
 
45
45
  def invalid_token?
@@ -18,6 +18,6 @@ class Agilibox::MiniModelSerializer::Serializer < Agilibox::MiniModelSerializer:
18
18
  end
19
19
 
20
20
  def respond_to_missing?(m, *)
21
- object.respond_to?(m, true)
21
+ super || object.respond_to?(m, true)
22
22
  end
23
23
  end
@@ -6,7 +6,7 @@ class Agilibox::PhoneNumberSanitizer
6
6
  end
7
7
 
8
8
  def call
9
- phone_number.to_s.gsub(/[^0-9\+]+/, "").presence
9
+ phone_number.to_s.gsub(/[^0-9+]+/, "").presence
10
10
  end
11
11
 
12
12
  def self.call(*args)
@@ -1,6 +1,7 @@
1
1
  class Agilibox::Serializers::XLSX < Agilibox::Serializers::Base
2
2
  def render_inline
3
- SpreadsheetArchitect.to_xlsx(data: formatted_data)
3
+ headers, *data = formatted_data
4
+ SpreadsheetArchitect.to_xlsx(headers: headers, data: data, freeze_headers: true)
4
5
  end
5
6
 
6
7
  def render_file(file_path)
@@ -1,8 +1,14 @@
1
1
  class Agilibox::Service
2
2
  include Agilibox::InitializeWith
3
3
 
4
- def self.call(*args)
5
- new(*args).call
4
+ if RUBY_VERSION >= "2.7.0"
5
+ def self.call(...)
6
+ new(...).call
7
+ end
8
+ else
9
+ def self.call(*args)
10
+ new(*args).call
11
+ end
6
12
  end
7
13
 
8
14
  def call(*)
@@ -36,7 +36,7 @@ class Agilibox::SMS::ApplicationSMS
36
36
  end
37
37
 
38
38
  def respond_to_missing?(m, *)
39
- public_instance_methods.include?(m)
39
+ super || public_instance_methods.include?(m)
40
40
  end
41
41
  end # class << self
42
42
  end
@@ -2,7 +2,7 @@ module Agilibox::ActiveModelTypeCast
2
2
  module Decimal
3
3
  def cast_value(value)
4
4
  if value.is_a?(String)
5
- super value.tr(",", ".").gsub(/[^-0-9\.]/, "")
5
+ super value.tr(",", ".").gsub(/[^-0-9.]/, "")
6
6
  else
7
7
  super value
8
8
  end
@@ -10,6 +10,7 @@ class Agilibox::ErrorsMiddleware
10
10
  "ActionController::UnknownFormat",
11
11
  "ActionController::UnknownHttpMethod",
12
12
  "ActionView::MissingTemplate",
13
+ "Mime::Type::InvalidMimeType",
13
14
  ]
14
15
 
15
16
  def initialize(app)
@@ -1,3 +1,3 @@
1
1
  module Agilibox
2
- VERSION = "1.9.5"
2
+ VERSION = "1.9.10"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: agilibox
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.5
4
+ version: 1.9.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - agilidée
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-04 00:00:00.000000000 Z
11
+ date: 2020-12-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n
@@ -228,7 +228,7 @@ homepage: https://github.com/agilidee/agilibox
228
228
  licenses:
229
229
  - MIT
230
230
  metadata: {}
231
- post_install_message:
231
+ post_install_message:
232
232
  rdoc_options: []
233
233
  require_paths:
234
234
  - lib
@@ -243,8 +243,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
243
243
  - !ruby/object:Gem::Version
244
244
  version: '0'
245
245
  requirements: []
246
- rubygems_version: 3.0.3
247
- signing_key:
246
+ rubygems_version: 3.1.4
247
+ signing_key:
248
248
  specification_version: 4
249
249
  summary: Agilibox
250
250
  test_files: []