Class: LcpRuby::Dsl::SearchBuilder
- Inherits:
-
Object
- Object
- LcpRuby::Dsl::SearchBuilder
- Includes:
- SourceLocationCapture
- Defined in:
- lib/lcp_ruby/dsl/presenter_builder.rb
Instance Method Summary collapse
- #advanced_filter(&block) ⇒ Object
- #auto_search(value = true) ⇒ Object
- #columns(value) ⇒ Object
- #debounce_ms(value) ⇒ Object
- #default_scope(value) ⇒ Object
- #enabled(value) ⇒ Object
- #filter(name, label:, default: false, scope: nil) ⇒ Object
-
#initialize ⇒ SearchBuilder
constructor
A new instance of SearchBuilder.
- #min_query_length(value) ⇒ Object
- #parameter(name, type:, field: nil, **opts) ⇒ Object
- #placeholder(value) ⇒ Object
- #responsive(value) ⇒ Object
- #searchable_fields(*fields) ⇒ Object
- #to_hash ⇒ Object
Methods included from SourceLocationCapture
Constructor Details
#initialize ⇒ SearchBuilder
Returns a new instance of SearchBuilder.
1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1089 def initialize @enabled = true @searchable_fields_list = nil @placeholder_value = nil @filters = [] @auto_search_value = nil @debounce_ms_value = nil @min_query_length_value = nil @default_scope_value = nil @advanced_filter_hash = nil @parameters = [] @columns_value = nil @responsive_value = nil end |
Instance Method Details
#advanced_filter(&block) ⇒ Object
1156 1157 1158 1159 1160 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1156 def advanced_filter(&block) builder = AdvancedFilterBuilder.new builder.instance_eval(&block) @advanced_filter_hash = builder.to_hash end |
#auto_search(value = true) ⇒ Object
1117 1118 1119 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1117 def auto_search(value = true) @auto_search_value = value end |
#columns(value) ⇒ Object
1141 1142 1143 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1141 def columns(value) @columns_value = value end |
#debounce_ms(value) ⇒ Object
1121 1122 1123 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1121 def debounce_ms(value) @debounce_ms_value = value end |
#default_scope(value) ⇒ Object
1129 1130 1131 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1129 def default_scope(value) @default_scope_value = value.to_s end |
#enabled(value) ⇒ Object
1104 1105 1106 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1104 def enabled(value) @enabled = value end |
#filter(name, label:, default: false, scope: nil) ⇒ Object
1133 1134 1135 1136 1137 1138 1139 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1133 def filter(name, label:, default: false, scope: nil) filter_hash = { "name" => name.to_s, "label" => label } filter_hash["_label_source_loc"] = capture_source_loc filter_hash["default"] = true if default filter_hash["scope"] = scope.to_s if scope @filters << filter_hash end |
#min_query_length(value) ⇒ Object
1125 1126 1127 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1125 def min_query_length(value) @min_query_length_value = value end |
#parameter(name, type:, field: nil, **opts) ⇒ Object
1149 1150 1151 1152 1153 1154 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1149 def parameter(name, type:, field: nil, **opts) param_hash = { "name" => name.to_s, "type" => type.to_s } param_hash["field"] = field.to_s if field opts.each { |k, v| param_hash[k.to_s] = v.is_a?(Symbol) ? v.to_s : HashUtils.stringify_deep(v) } @parameters << param_hash end |
#placeholder(value) ⇒ Object
1112 1113 1114 1115 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1112 def placeholder(value) @placeholder_value = value @placeholder_source_loc = capture_source_loc end |
#responsive(value) ⇒ Object
1145 1146 1147 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1145 def responsive(value) @responsive_value = value end |
#searchable_fields(*fields) ⇒ Object
1108 1109 1110 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1108 def searchable_fields(*fields) @searchable_fields_list = fields.flatten.map(&:to_s) end |
#to_hash ⇒ Object
1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 |
# File 'lib/lcp_ruby/dsl/presenter_builder.rb', line 1162 def to_hash hash = { "enabled" => @enabled } hash["searchable_fields"] = @searchable_fields_list if @searchable_fields_list hash["placeholder"] = @placeholder_value if @placeholder_value hash["auto_search"] = @auto_search_value unless @auto_search_value.nil? hash["debounce_ms"] = @debounce_ms_value if @debounce_ms_value hash["min_query_length"] = @min_query_length_value if @min_query_length_value hash["default_scope"] = @default_scope_value if @default_scope_value hash["predefined_filters"] = @filters unless @filters.empty? hash["columns"] = @columns_value if @columns_value hash["responsive"] = HashUtils.stringify_deep(@responsive_value) if @responsive_value hash["parameters"] = @parameters unless @parameters.empty? hash["advanced_filter"] = @advanced_filter_hash if @advanced_filter_hash hash end |