bmc 1.3.0 → 1.3.3

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: 8059c6df5d1948303e20ec0771f1d379880a9c9a771d7c92b27432bce595f4c6
4
- data.tar.gz: 6497a08bed10f80364780ee870aafe69e6bbc4ff8cff232ac74da63715d7c99c
3
+ metadata.gz: 0e1c8bd6f444622bdc76a8652cc3a838f2b8896f6222a6b008d6b7114825f850
4
+ data.tar.gz: d5ec9ea5260c3cc19d970a30855b074202013eb990fed3728d8fd9488a2cc045
5
5
  SHA512:
6
- metadata.gz: cf4d0096587ce7ebaefbead1b4c1fbd527cd4a97ae9c36f7d9db90d9042e9142932b7e090234d2184387c6d6ed2dd9a8df731a7f638090720f101b813b05c412
7
- data.tar.gz: 2955d4e545a15c05216d45cfed14be03a209288abb80ec3798cbf5218e3f76a81ef7a4e34fe1b17a4dd85e14d8049cbb1ecb8620b19dc3fdb60d658ee42432b6
6
+ metadata.gz: a77adee3801c992e232daf6ac0cebcd91cf1a5e4476f876da242fce019d9a607867939b3fa511ac096b2d718647f27757aff1e1aedd838e77a3c3bcf8e063b77
7
+ data.tar.gz: 0c3fc3abfcc6cb2175b6ba33087cb793056fc1b4601e309f0e72be30dd746e15f3e2211651287684388fcc6ccbd0ca9e6985363ad7ae1e1f2050befc8b002b0c
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  ## Next version
4
4
 
5
+ ## v1.3.3
6
+ - Add `only:` support to `hidden_inputs_for_get_form` helper
7
+
8
+ ## v1.3.2
9
+ - Add `bs_button_to` helper
10
+
11
+ ## v1.3.1
12
+ - Add sorter helpers
13
+
5
14
  ## v1.3.0
6
15
  - Replace `icon` helper by `fa_s`/`fa_r`/`fa_b` helpers
7
16
 
@@ -22,6 +22,7 @@ module BMC::ButtonHelper
22
22
  btn_size: BMC::ButtonHelper.default_size,
23
23
  btn_style: BMC::ButtonHelper.default_style,
24
24
  add_class: [],
25
+ helper: :link_to,
25
26
  **options
26
27
  )
27
28
  text = ta(action) if text.nil? && action
@@ -50,7 +51,11 @@ module BMC::ButtonHelper
50
51
  options.deep_merge!(data: {confirm: confirm})
51
52
  end
52
53
 
53
- link_to(content, url, options.sort.to_h)
54
+ public_send(helper, content, url, options.sort.to_h)
55
+ end
56
+
57
+ def bs_button_to(url, **options)
58
+ bs_button(url, helper: :button_to, **options)
54
59
  end
55
60
 
56
61
  def new_button(url = url_for(action: :new), **options)
@@ -5,17 +5,17 @@ module BMC::FormHelper
5
5
  # Does not work if display:none
6
6
  def form_hidden_submit
7
7
  css = "position:absolute;top:-9999px;left:-9999px;opacity:0;height:0;width:0;visibility: hidden"
8
- tag(:input, type: "submit", class: "hidden-submit", style: css)
8
+ tag.input(type: "submit", class: "hidden-submit", style: css)
9
9
  end
10
10
 
11
11
  def search_form(action: request.fullpath)
12
12
  render "bmc/search/form", action: action
13
13
  end
14
14
 
15
- def hidden_inputs_for_get_form(url, except: [])
16
- query_values = Addressable::URI.parse(url).query_values.to_h
17
- .with_indifferent_access
18
- .except(*except)
15
+ def hidden_inputs_for_get_form(url, except: nil, only: nil)
16
+ query_values = Addressable::URI.parse(url).query_values.to_h.with_indifferent_access
17
+ query_values.except!(*except) if except
18
+ query_values.select! { only.map(&:to_sym).include?(_1.to_sym) } if only
19
19
 
20
20
  return if query_values.empty?
21
21
 
@@ -8,7 +8,7 @@ class BMC::MiniModelSerializer::Serialize
8
8
 
9
9
  def call
10
10
  if object.is_a?(Hash)
11
- object.map { |k, v| [k.to_s, serialize(v)] }.to_h
11
+ object.to_h { |k, v| [k.to_s, serialize(v)] }
12
12
  elsif object.is_a?(Enumerable)
13
13
  object.map { |e| serialize(e) }
14
14
  elsif (serializer = "#{object.class}Serializer".safe_constantize)
@@ -4,7 +4,7 @@ class BMC::MiniModelSerializer::Serializer < BMC::MiniModelSerializer::Serialize
4
4
  end
5
5
 
6
6
  def call
7
- serialize attributes.map { |k| [k, send(k)] }.to_h
7
+ serialize(attributes.index_with { |k| send(k) })
8
8
  end
9
9
 
10
10
  private
@@ -11,9 +11,7 @@ class BMC::Serializers::XLSX < BMC::Serializers::Base
11
11
  end
12
12
 
13
13
  def render_file(file_path)
14
- File.open(file_path, "w+b") do |f|
15
- f.write(render_inline)
16
- end
14
+ File.binwrite(file_path, render_inline)
17
15
  end
18
16
 
19
17
  private
@@ -25,14 +23,14 @@ class BMC::Serializers::XLSX < BMC::Serializers::Base
25
23
  end
26
24
 
27
25
  def date_range_styles(row)
28
- row.each_index.select { row[_1].is_a?(Date) }.map do
29
- {range: {rows: :all, columns: _1}, styles: {format_code: "dd/mm/yyyy"}}
26
+ row.each_index.select { row[_1].is_a?(Date) }.map do |col|
27
+ {range: {rows: :all, columns: col}, styles: {format_code: "dd/mm/yyyy"}}
30
28
  end
31
29
  end
32
30
 
33
31
  def time_range_styles(row)
34
- row.each_index.select { row[_1].is_a?(Time) }.map do
35
- {range: {rows: :all, columns: _1}, styles: {format_code: "dd/mm/yyyy hh:mm:ss"}}
32
+ row.each_index.select { row[_1].is_a?(Time) }.map do |col|
33
+ {range: {rows: :all, columns: col}, styles: {format_code: "dd/mm/yyyy hh:mm:ss"}}
36
34
  end
37
35
  end
38
36
  end
@@ -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
@@ -17,7 +17,5 @@ module BMC::ActiveModelCustomErrorMessages
17
17
  end
18
18
  end
19
19
 
20
- if Module.const_defined?("ActiveModel::Error")
21
- ActiveModel::Error.prepend(ForError)
22
- end
20
+ ActiveModel::Error.prepend(ForError)
23
21
  end
data/lib/bmc/config.rb CHANGED
@@ -5,7 +5,7 @@ class << BMC
5
5
  @parent_controller ||= [
6
6
  "ApplicationController",
7
7
  "ActionController::Base",
8
- ].map(&:safe_constantize).compact.first
8
+ ].filter_map(&:safe_constantize).first
9
9
  end
10
10
 
11
11
  attr_writer :parent_job
@@ -14,7 +14,7 @@ class << BMC
14
14
  @parent_job ||= [
15
15
  "ApplicationJob",
16
16
  "ActiveJob::Base",
17
- ].map(&:safe_constantize).compact.first
17
+ ].filter_map(&:safe_constantize).first
18
18
  end
19
19
 
20
20
  attr_writer :parent_mailer
@@ -23,6 +23,6 @@ class << BMC
23
23
  @parent_mailer ||= [
24
24
  "ApplicationMailer",
25
25
  "ActionMailer::Base",
26
- ].map(&:safe_constantize).compact.first
26
+ ].filter_map(&:safe_constantize).first
27
27
  end
28
28
  end
@@ -1,6 +1,6 @@
1
1
  module BMC::FormBackUrl
2
2
  def back_url_tag
3
- tag(:input,
3
+ tag.input(
4
4
  :type => "hidden",
5
5
  :name => "back_url",
6
6
  :value => (params[:back_url].presence || request.referer),
data/lib/bmc/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module BMC
2
- VERSION = "1.3.0"
2
+ VERSION = "1.3.3"
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.3.0
4
+ version: 1.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Benoit MARTIN-CHAVE
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-11 00:00:00.000000000 Z
11
+ date: 2022-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails-i18n