rails_bootstrap_form 0.3.1 → 0.4.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: 70abffa048a738dda1992939b9169a40dd831c2d3413bab1cea5127283e53256
4
- data.tar.gz: 179f8c46bdde787f36b8dd94d3dd1094cefebb64b6c282369590dde6c697026a
3
+ metadata.gz: 25354c2cb11c5971bf3435e2415ca37c0fcfabeeb45cd269a8dbecba7d582fd7
4
+ data.tar.gz: f695f139348b6fb1f2c054e90f79c6d5c53805ec047ac6d239df946a09039278
5
5
  SHA512:
6
- metadata.gz: aab81e40e723cf1e83c169cd8b0a67e218a87c589ff3232d2a817ba9aa788ddf9eedb3f3887d7dc551776e2eaf5e3da66421b6b71d6b90a9f43c4446c4b244b5
7
- data.tar.gz: 15e5b383cd6a6208f112edb2c0cba378e01b320d0728d122b216d7dc288279c3f78af2dad122814b313230944405616d960406a94084d19794d52b4f1e0939c8
6
+ metadata.gz: ed91e2feb0354818a43161b165ed8bba83b8e29a9f3013d2a3f7df54e23158768332d2381f36132399dedb7531a65abcd9234a70814c9b05f63c6af3ed66c245
7
+ data.tar.gz: ea1cf098b34f86c6f5ca4bb1cfc6031a93f81865515e484f6322934e33673b9980c053ccf02db70d302feb520e8766998678505f3e406b805b426dada7d000ee
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_bootstrap_form (0.3.1)
4
+ rails_bootstrap_form (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
@@ -14,3 +14,9 @@ label.required::after {
14
14
  background-position: right 0.5rem center, center right 2rem !important;
15
15
  background-size: 24px 24px, calc(0.75em + 0.375rem) calc(0.75em + 0.375rem) !important;
16
16
  }
17
+ .rails-bootstrap-forms-date-select select,
18
+ .rails-bootstrap-forms-time-select select,
19
+ .rails-bootstrap-forms-datetime-select select {
20
+ display: inline-block;
21
+ width: auto;
22
+ }
@@ -3,6 +3,9 @@
3
3
  # -*- warn_indent: true -*-
4
4
 
5
5
  class User < ApplicationRecord
6
+ validates :name, presence: true, length: {in: 2..50}
7
+ validates :email, presence: true
8
+
6
9
  has_one :address, dependent: :destroy
7
10
 
8
11
  has_many :user_skills, dependent: :destroy
@@ -26,6 +26,7 @@
26
26
  fruit_id: "Favorite fruit",
27
27
  terms: "I accept terms and conditions",
28
28
  excellence: "Excellence",
29
+ skill_ids: "Skills",
29
30
  },
30
31
  user_skill: {
31
32
  user_id: "User",
@@ -25,6 +25,10 @@ module RailsBootstrapForm
25
25
  options[:html].reverse_merge!(RailsBootstrapForm.config.default_form_attributes)
26
26
  end
27
27
 
28
- private :apply_default_form_options
28
+ def control_specific_class(field_tag_name)
29
+ "rails-bootstrap-forms-#{field_tag_name.to_s.tr("_", "-")}"
30
+ end
31
+
32
+ private :apply_default_form_options, :control_specific_class
29
33
  end
30
34
  end
@@ -82,6 +82,10 @@ module RailsBootstrapForm
82
82
  # Default is false.
83
83
  attr_accessor :floating
84
84
 
85
+ # Default CSS class that will be applied to all static fields.
86
+ # Default is `form-control-plaintext`.
87
+ attr_accessor :static_field_class
88
+
85
89
  def initialize(options = {})
86
90
  set_defaults
87
91
  set_bootstrap_form_options(options)
@@ -140,6 +144,8 @@ module RailsBootstrapForm
140
144
  @additional_label_class = nil
141
145
 
142
146
  @floating = false
147
+
148
+ @static_field_class = "form-control-plaintext"
143
149
  end
144
150
 
145
151
  private :set_defaults
@@ -24,6 +24,12 @@ module RailsBootstrapForm
24
24
  week_field
25
25
  ].freeze
26
26
 
27
+ DATE_SELECT_HELPERS = %i[
28
+ date_select
29
+ time_select
30
+ datetime_select
31
+ ].freeze
32
+
27
33
  FIELD_HELPERS.each do |field_tag_name|
28
34
  define_method(field_tag_name) do |attribute, options = {}|
29
35
  field_wrapper_builder(attribute, options) do
@@ -32,6 +38,18 @@ module RailsBootstrapForm
32
38
  end
33
39
  end
34
40
 
41
+ DATE_SELECT_HELPERS.each do |field_tag_name|
42
+ define_method(field_tag_name) do |attribute, options = {}, html_options = {}, &block|
43
+ options = options.reverse_merge(bootstrap_form: {field_class: "form-select"})
44
+
45
+ field_wrapper_builder(attribute, options, html_options) do
46
+ tag.div(class: control_specific_class(field_tag_name)) do
47
+ super(attribute, options, html_options)
48
+ end
49
+ end
50
+ end
51
+ end
52
+
35
53
  def select(attribute, choices = nil, options = {}, html_options = {}, &block)
36
54
  options = options.reverse_merge(bootstrap_form: {field_class: "form-select"})
37
55
 
@@ -39,5 +57,60 @@ module RailsBootstrapForm
39
57
  super(attribute, choices, options, html_options, &block)
40
58
  end
41
59
  end
60
+
61
+ def collection_select(attribute, collection, value_method, text_method, options = {}, html_options = {})
62
+ options = options.reverse_merge(bootstrap_form: {field_class: "form-select"})
63
+
64
+ field_wrapper_builder(attribute, options, html_options) do
65
+ super(attribute, collection, value_method, text_method, options, html_options)
66
+ end
67
+ end
68
+
69
+ def range_field(attribute, options = {})
70
+ options = options.reverse_merge(bootstrap_form: {field_class: "form-range"})
71
+
72
+ field_wrapper_builder(attribute, options) do
73
+ super(attribute, options)
74
+ end
75
+ end
76
+
77
+ def color_field(attribute, options = {})
78
+ options = options.reverse_merge(bootstrap_form: {field_class: "form-control form-control-color"})
79
+
80
+ field_wrapper_builder(attribute, options) do
81
+ super(attribute, options)
82
+ end
83
+ end
84
+
85
+ def time_zone_select(attribute, priority_zones = nil, options = {}, html_options = {})
86
+ options = options.reverse_merge(bootstrap_form: {field_class: "form-select"})
87
+
88
+ field_wrapper_builder(attribute, options, html_options) do
89
+ super(attribute, priority_zones, options, html_options)
90
+ end
91
+ end
92
+
93
+ def hidden_field(attribute, options = {})
94
+ options[:value] = object.send(attribute) unless options.key?(:value)
95
+
96
+ super(attribute, options)
97
+ end
98
+
99
+ def static_field(*args)
100
+ options = args.extract_options!
101
+ attribute = args.first
102
+
103
+ static_options = options.merge(
104
+ readonly: true,
105
+ disabled: true,
106
+ bootstrap_form: {
107
+ field_class: bootstrap_form_options.static_field_class
108
+ }
109
+ )
110
+
111
+ static_options[:value] = object.send(attribute) unless options.key?(:value)
112
+
113
+ text_field(attribute, static_options)
114
+ end
42
115
  end
43
116
  end
@@ -3,6 +3,6 @@
3
3
  # -*- warn_indent: true -*-
4
4
 
5
5
  module RailsBootstrapForm
6
- VERSION = "0.3.1".freeze
6
+ VERSION = "0.4.0".freeze
7
7
  REQUIRED_RAILS_VERSION = "~> 7.0".freeze
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_bootstrap_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harshal LADHE (shivam091)