1
0
Fork 0
mirror of https://github.com/activerecord-hackery/ransack.git synced 2022-11-09 13:47:45 -05:00
activerecord-hackery--ransack/lib/ransack/constants.rb
Jon Atack 381a83cebe Freeze strings in array constants and begin moving
from using global constants to frozen strings (cc @avit).

It's not pretty, but it's faster and better for understanding the code
without having to look up what the special constants represent.

From the discussion in #530:

"Things are evolving, but with Ruby 2.2 here is my current
understanding:

- I believe you are correct that the strings inside the array could
benefit from freezing, in hot spots.

- Freezing a string may now be faster than looking up a frozen string
constant.

So, it might make sense now in Ransack master and upcoming releases, to
optimize for Ruby 2.2+ and stop using frozen constants, and replace
them with frozen strings or symbols."

Closes #530.
2015-08-29 22:52:57 +02:00

57 lines
1.9 KiB
Ruby

module Ransack
module Constants
ASC_ARROW = '▲'.freeze
DESC_ARROW = '▼'.freeze
OR = 'or'.freeze
AND = 'and'.freeze
CAP_SEARCH = 'Search'.freeze
SEARCH = 'search'.freeze
SEARCHES = 'searches'.freeze
ATTRIBUTE = 'attribute'.freeze
ATTRIBUTES = 'attributes'.freeze
COMBINATOR = 'combinator'.freeze
TWO_COLONS = '::'.freeze
UNDERSCORE = '_'.freeze
LEFT_PARENTHESIS = '('.freeze
Q = 'q'.freeze
I = 'i'.freeze
DOT_ASTERIX = '.*'.freeze
STRING_JOIN = 'string_join'.freeze
ASSOCIATION_JOIN = 'association_join'.freeze
STASHED_JOIN = 'stashed_join'.freeze
JOIN_NODE = 'join_node'.freeze
TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE'].to_set
FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE'].to_set
BOOLEAN_VALUES = (TRUE_VALUES + FALSE_VALUES).freeze
AND_OR = ['and'.freeze, 'or'.freeze].freeze
IN_NOT_IN = ['in'.freeze, 'not_in'.freeze].freeze
SUFFIXES = ['_any'.freeze, '_all'.freeze].freeze
AREL_PREDICATES = [
'eq'.freeze, 'not_eq'.freeze,
'matches'.freeze, 'does_not_match'.freeze,
'lt'.freeze, 'lteq'.freeze,
'gt'.freeze, 'gteq'.freeze,
'in'.freeze, 'not_in'.freeze
].freeze
A_S_I = ['a'.freeze, 's'.freeze, 'i'.freeze].freeze
EQ = 'eq'.freeze
NOT_EQ = 'not_eq'.freeze
EQ_ANY = 'eq_any'.freeze
NOT_EQ_ALL = 'not_eq_all'.freeze
CONT = 'cont'.freeze
RAILS_4_1 = '4.1'.freeze
RANSACK_SLASH_SEARCHES = 'ransack/searches'.freeze
RANSACK_SLASH_SEARCHES_SLASH_SEARCH = 'ransack/searches/search'.freeze
end
end