Module: Uchi::Field::Configuration
- Included in:
- Uchi::Field
- Defined in:
- lib/uchi/field/configuration.rb
Defined Under Namespace
Classes: Unset
Constant Summary collapse
- DEFAULT_READER =
->(record, field_name) { record.public_send(field_name) }
Instance Method Summary collapse
- #initialize(*args) ⇒ Object
-
#on(*actions) ⇒ self, Array<Symbol>
Sets or gets which actions this field should appear on.
-
#reader(reader_proc = nil) ⇒ self, Proc
Sets or gets a custom reader for this field.
-
#searchable(value = Configuration::Unset) ⇒ self, Boolean
Sets or gets whether this field is searchable.
-
#searchable? ⇒ Boolean
Returns true if the field is searchable and should be included in the query when a search term has been entered.
-
#sortable(value = Configuration::Unset) ⇒ self, ...
Sets or gets whether and how this field is sortable.
-
#sortable? ⇒ Boolean
Returns true if the field is sortable.
Instance Method Details
#initialize(*args) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/uchi/field/configuration.rb', line 10 def initialize(*args) super @on = default_on @reader = DEFAULT_READER @searchable = default_searchable? @sortable = default_sortable? end |
#on(*actions) ⇒ self, Array<Symbol>
Sets or gets which actions this field should appear on.
When called with arguments, sets the actions and returns self for chaining. When called without arguments, returns the current actions.
33 34 35 36 37 38 |
# File 'lib/uchi/field/configuration.rb', line 33 def on(*actions) return @on if actions.empty? @on = actions.flatten self end |
#reader(reader_proc = nil) ⇒ self, Proc
Sets or gets a custom reader for this field.
When called with an argument, sets the reader and returns self for chaining. When called without arguments, returns the current reader.
57 58 59 60 61 62 |
# File 'lib/uchi/field/configuration.rb', line 57 def reader(reader_proc = nil) return @reader if reader_proc.nil? && !block_given? @reader = reader_proc || Proc.new self end |
#searchable(value = Configuration::Unset) ⇒ self, Boolean
Sets or gets whether this field is searchable.
When called with an argument, sets searchable and returns self for chaining. When called without arguments, returns whether the field is searchable.
77 78 79 80 81 82 |
# File 'lib/uchi/field/configuration.rb', line 77 def searchable(value = Configuration::Unset) return @searchable if value == Configuration::Unset @searchable = value self end |
#searchable? ⇒ Boolean
Returns true if the field is searchable and should be included in the query when a search term has been entered.
86 87 88 89 90 |
# File 'lib/uchi/field/configuration.rb', line 86 def searchable? return default_searchable? if @searchable.nil? !!@searchable end |
#sortable(value = Configuration::Unset) ⇒ self, ...
Sets or gets whether and how this field is sortable.
When called with an argument, sets sortable and returns self for chaining. When called without arguments, returns the sortable value.
113 114 115 116 117 118 |
# File 'lib/uchi/field/configuration.rb', line 113 def sortable(value = Configuration::Unset) return @sortable if value == Configuration::Unset @sortable = value self end |
#sortable? ⇒ Boolean
Returns true if the field is sortable
121 122 123 124 125 |
# File 'lib/uchi/field/configuration.rb', line 121 def sortable? return default_sortable? if @sortable.nil? !!@sortable end |