agilibox 1.9.5 → 1.9.10

Sign up to get free protection for your applications and to get access to all the features.
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: []