mini-fast-sys 0.0.1
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 +7 -0
- data/mini-fast-sys.gemspec +12 -0
- data/ransack-4.4.1/LICENSE +20 -0
- data/ransack-4.4.1/README.md +101 -0
- data/ransack-4.4.1/lib/polyamorous/activerecord/join_association.rb +70 -0
- data/ransack-4.4.1/lib/polyamorous/activerecord/join_association_7_2.rb +55 -0
- data/ransack-4.4.1/lib/polyamorous/activerecord/join_dependency.rb +102 -0
- data/ransack-4.4.1/lib/polyamorous/activerecord/reflection.rb +11 -0
- data/ransack-4.4.1/lib/polyamorous/join.rb +70 -0
- data/ransack-4.4.1/lib/polyamorous/polyamorous.rb +27 -0
- data/ransack-4.4.1/lib/polyamorous/swapping_reflection_class.rb +11 -0
- data/ransack-4.4.1/lib/polyamorous/tree_node.rb +7 -0
- data/ransack-4.4.1/lib/ransack/active_record.rb +14 -0
- data/ransack-4.4.1/lib/ransack/adapters/active_record/base.rb +152 -0
- data/ransack-4.4.1/lib/ransack/adapters/active_record/context.rb +373 -0
- data/ransack-4.4.1/lib/ransack/configuration.rb +209 -0
- data/ransack-4.4.1/lib/ransack/constants.rb +176 -0
- data/ransack-4.4.1/lib/ransack/context.rb +190 -0
- data/ransack-4.4.1/lib/ransack/helpers/form_builder.rb +277 -0
- data/ransack-4.4.1/lib/ransack/helpers/form_helper.rb +311 -0
- data/ransack-4.4.1/lib/ransack/helpers.rb +2 -0
- data/ransack-4.4.1/lib/ransack/invalid_search_error.rb +3 -0
- data/ransack-4.4.1/lib/ransack/locale/ar.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/az.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/bg.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/ca.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/cs.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/da.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/de.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/el.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/en.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/es.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/fa.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/fi.yml +71 -0
- data/ransack-4.4.1/lib/ransack/locale/fr.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/hu.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/id.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/it.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/ja.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/ko.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/nl.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/pt-BR.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/ro.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/ru.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/sk.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/sv.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/tr.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/uk.yml +72 -0
- data/ransack-4.4.1/lib/ransack/locale/zh-CN.yml +70 -0
- data/ransack-4.4.1/lib/ransack/locale/zh-TW.yml +70 -0
- data/ransack-4.4.1/lib/ransack/naming.rb +58 -0
- data/ransack-4.4.1/lib/ransack/nodes/attribute.rb +59 -0
- data/ransack-4.4.1/lib/ransack/nodes/bindable.rb +52 -0
- data/ransack-4.4.1/lib/ransack/nodes/condition.rb +399 -0
- data/ransack-4.4.1/lib/ransack/nodes/grouping.rb +206 -0
- data/ransack-4.4.1/lib/ransack/nodes/node.rb +34 -0
- data/ransack-4.4.1/lib/ransack/nodes/sort.rb +54 -0
- data/ransack-4.4.1/lib/ransack/nodes/value.rb +115 -0
- data/ransack-4.4.1/lib/ransack/predicate.rb +75 -0
- data/ransack-4.4.1/lib/ransack/ransacker.rb +24 -0
- data/ransack-4.4.1/lib/ransack/search.rb +195 -0
- data/ransack-4.4.1/lib/ransack/translate.rb +156 -0
- data/ransack-4.4.1/lib/ransack/version.rb +3 -0
- data/ransack-4.4.1/lib/ransack/visitor.rb +87 -0
- data/ransack-4.4.1/lib/ransack.rb +33 -0
- data/ransack-4.4.1/spec/console.rb +13 -0
- data/ransack-4.4.1/spec/factories/articles.rb +7 -0
- data/ransack-4.4.1/spec/factories/comments.rb +7 -0
- data/ransack-4.4.1/spec/factories/notes.rb +13 -0
- data/ransack-4.4.1/spec/factories/people.rb +10 -0
- data/ransack-4.4.1/spec/factories/tags.rb +5 -0
- data/ransack-4.4.1/spec/helpers/polyamorous_helper.rb +13 -0
- data/ransack-4.4.1/spec/helpers/ransack_helper.rb +9 -0
- data/ransack-4.4.1/spec/polyamorous/activerecord_compatibility_spec.rb +15 -0
- data/ransack-4.4.1/spec/polyamorous/join_association_spec.rb +29 -0
- data/ransack-4.4.1/spec/polyamorous/join_dependency_spec.rb +80 -0
- data/ransack-4.4.1/spec/polyamorous/join_spec.rb +19 -0
- data/ransack-4.4.1/spec/ransack/adapters/active_record/base_spec.rb +943 -0
- data/ransack-4.4.1/spec/ransack/adapters/active_record/context_spec.rb +219 -0
- data/ransack-4.4.1/spec/ransack/configuration_spec.rb +201 -0
- data/ransack-4.4.1/spec/ransack/helpers/form_builder_spec.rb +169 -0
- data/ransack-4.4.1/spec/ransack/helpers/form_helper_spec.rb +1075 -0
- data/ransack-4.4.1/spec/ransack/invalid_search_error_spec.rb +27 -0
- data/ransack-4.4.1/spec/ransack/nodes/condition_spec.rb +333 -0
- data/ransack-4.4.1/spec/ransack/nodes/grouping_spec.rb +111 -0
- data/ransack-4.4.1/spec/ransack/nodes/value_spec.rb +126 -0
- data/ransack-4.4.1/spec/ransack/predicate_spec.rb +504 -0
- data/ransack-4.4.1/spec/ransack/ransacker_spec.rb +69 -0
- data/ransack-4.4.1/spec/ransack/search_spec.rb +821 -0
- data/ransack-4.4.1/spec/ransack/translate_spec.rb +16 -0
- data/ransack-4.4.1/spec/spec_helper.rb +52 -0
- data/ransack-4.4.1/spec/support/en.yml +18 -0
- data/ransack-4.4.1/spec/support/schema.rb +419 -0
- metadata +133 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
module Ransack
|
|
2
|
+
module Helpers
|
|
3
|
+
module FormHelper
|
|
4
|
+
|
|
5
|
+
# +search_form_for+
|
|
6
|
+
#
|
|
7
|
+
# <%= search_form_for(@q) do |f| %>
|
|
8
|
+
#
|
|
9
|
+
def search_form_for(record, options = {}, &proc)
|
|
10
|
+
search = extract_search_and_set_url(record, options, 'search_form_for')
|
|
11
|
+
options[:html] ||= {}
|
|
12
|
+
html_options = build_html_options(search, options, :get)
|
|
13
|
+
finalize_form_options(options, html_options)
|
|
14
|
+
form_for(record, options, &proc)
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# +search_form_with+
|
|
18
|
+
#
|
|
19
|
+
# <%= search_form_with(model: @q) do |f| %>
|
|
20
|
+
#
|
|
21
|
+
def search_form_with(record_or_options = {}, options = {}, &proc)
|
|
22
|
+
if record_or_options.is_a?(Hash) && record_or_options.key?(:model)
|
|
23
|
+
# Called with keyword arguments: search_form_with(model: @q)
|
|
24
|
+
options = record_or_options
|
|
25
|
+
record = options.delete(:model)
|
|
26
|
+
else
|
|
27
|
+
# Called with positional arguments: search_form_with(@q)
|
|
28
|
+
record = record_or_options
|
|
29
|
+
end
|
|
30
|
+
search = extract_search_and_set_url(record, options, 'search_form_with')
|
|
31
|
+
options[:html] ||= {}
|
|
32
|
+
html_options = build_html_options(search, options, :get)
|
|
33
|
+
finalize_form_with_options(options, html_options)
|
|
34
|
+
form_with(model: search, **options, &proc)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
# +turbo_search_form_for+
|
|
38
|
+
#
|
|
39
|
+
# <%= turbo_search_form_for(@q) do |f| %>
|
|
40
|
+
#
|
|
41
|
+
# This is a turbo-enabled version of search_form_for that submits via turbo streams
|
|
42
|
+
# instead of traditional HTML GET requests. Useful for seamless integration with
|
|
43
|
+
# paginated results and other turbo-enabled components.
|
|
44
|
+
#
|
|
45
|
+
def turbo_search_form_for(record, options = {}, &proc)
|
|
46
|
+
search = extract_search_and_set_url(record, options, 'turbo_search_form_for')
|
|
47
|
+
options[:html] ||= {}
|
|
48
|
+
turbo_options = build_turbo_options(options)
|
|
49
|
+
method = options.delete(:method) || :post
|
|
50
|
+
html_options = build_html_options(search, options, method).merge(turbo_options)
|
|
51
|
+
finalize_form_options(options, html_options)
|
|
52
|
+
form_for(record, options, &proc)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# +sort_link+
|
|
56
|
+
#
|
|
57
|
+
# <%= sort_link(@q, :name, [:name, 'kind ASC'], 'Player Name') %>
|
|
58
|
+
#
|
|
59
|
+
# You can also use a block:
|
|
60
|
+
#
|
|
61
|
+
# <%= sort_link(@q, :name, [:name, 'kind ASC']) do %>
|
|
62
|
+
# <strong>Player Name</strong>
|
|
63
|
+
# <% end %>
|
|
64
|
+
#
|
|
65
|
+
def sort_link(search_object, attribute, *args, &block)
|
|
66
|
+
search, routing_proxy = extract_search_and_routing_proxy(search_object)
|
|
67
|
+
unless Search === search
|
|
68
|
+
raise TypeError, 'First argument must be a Ransack::Search!'
|
|
69
|
+
end
|
|
70
|
+
args[args.first.is_a?(Array) ? 1 : 0, 0] = capture(&block) if block_given?
|
|
71
|
+
s = SortLink.new(search, attribute, args, params, &block)
|
|
72
|
+
link_to(s.name, url(routing_proxy, s.url_options), s.html_options(args))
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
# +sort_url+
|
|
76
|
+
# <%= sort_url(@q, :created_at, default_order: :desc) %>
|
|
77
|
+
#
|
|
78
|
+
def sort_url(search_object, attribute, *args)
|
|
79
|
+
search, routing_proxy = extract_search_and_routing_proxy(search_object)
|
|
80
|
+
unless Search === search
|
|
81
|
+
raise TypeError, 'First argument must be a Ransack::Search!'
|
|
82
|
+
end
|
|
83
|
+
s = SortLink.new(search, attribute, args, params)
|
|
84
|
+
url(routing_proxy, s.url_options)
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
private
|
|
88
|
+
|
|
89
|
+
def extract_search_and_set_url(record, options, method_name)
|
|
90
|
+
if record.is_a? Ransack::Search
|
|
91
|
+
search = record
|
|
92
|
+
options[:url] ||= polymorphic_path(
|
|
93
|
+
search.klass, format: options.delete(:format)
|
|
94
|
+
)
|
|
95
|
+
search
|
|
96
|
+
elsif record.is_a?(Array) &&
|
|
97
|
+
(search = record.detect { |o| o.is_a?(Ransack::Search) })
|
|
98
|
+
options[:url] ||= polymorphic_path(
|
|
99
|
+
options_for(record), format: options.delete(:format)
|
|
100
|
+
)
|
|
101
|
+
search
|
|
102
|
+
else
|
|
103
|
+
raise ArgumentError,
|
|
104
|
+
"No Ransack::Search object was provided to #{method_name}!"
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def build_turbo_options(options)
|
|
109
|
+
data_options = {}
|
|
110
|
+
if options[:turbo_frame]
|
|
111
|
+
data_options[:turbo_frame] = options.delete(:turbo_frame)
|
|
112
|
+
end
|
|
113
|
+
data_options[:turbo_action] = options.delete(:turbo_action) || 'advance'
|
|
114
|
+
{ data: data_options }
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
def build_html_options(search, options, method)
|
|
118
|
+
{
|
|
119
|
+
class: html_option_for(options[:class], search),
|
|
120
|
+
id: html_option_for(options[:id], search),
|
|
121
|
+
method: method
|
|
122
|
+
}
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
def finalize_form_options(options, html_options)
|
|
126
|
+
options[:as] ||= Ransack.options[:search_key]
|
|
127
|
+
options[:html].reverse_merge!(html_options)
|
|
128
|
+
options[:builder] ||= FormBuilder
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
def finalize_form_with_options(options, html_options)
|
|
132
|
+
options[:scope] ||= Ransack.options[:search_key]
|
|
133
|
+
options[:html].reverse_merge!(html_options)
|
|
134
|
+
options[:builder] ||= FormBuilder
|
|
135
|
+
end
|
|
136
|
+
|
|
137
|
+
def options_for(record)
|
|
138
|
+
record.map { |r| parse_record(r) }
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
def parse_record(object)
|
|
142
|
+
return object.klass if object.is_a?(Ransack::Search)
|
|
143
|
+
object
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
def html_option_for(option, search)
|
|
147
|
+
return option.to_s if option.present?
|
|
148
|
+
"#{search.klass.to_s.underscore}_search"
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def extract_search_and_routing_proxy(search)
|
|
152
|
+
return [search[1], search[0]] if search.is_a?(Array)
|
|
153
|
+
[search, nil]
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def url(routing_proxy, options_for_url)
|
|
157
|
+
if routing_proxy && respond_to?(routing_proxy)
|
|
158
|
+
send(routing_proxy).url_for(options_for_url)
|
|
159
|
+
else
|
|
160
|
+
url_for(options_for_url)
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
class SortLink
|
|
165
|
+
def initialize(search, attribute, args, params)
|
|
166
|
+
@search = search
|
|
167
|
+
@params = parameters_hash(params)
|
|
168
|
+
@field = attribute.to_s
|
|
169
|
+
@sort_fields = extract_sort_fields_and_mutate_args!(args).compact
|
|
170
|
+
@current_dir = existing_sort_direction
|
|
171
|
+
@label_text = extract_label_and_mutate_args!(args)
|
|
172
|
+
@options = extract_options_and_mutate_args!(args)
|
|
173
|
+
@hide_indicator = @options.delete(:hide_indicator) ||
|
|
174
|
+
Ransack.options[:hide_sort_order_indicators]
|
|
175
|
+
@default_order = @options.delete :default_order
|
|
176
|
+
end
|
|
177
|
+
|
|
178
|
+
def up_arrow
|
|
179
|
+
Ransack.options[:up_arrow]
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
def down_arrow
|
|
183
|
+
Ransack.options[:down_arrow]
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
def default_arrow
|
|
187
|
+
Ransack.options[:default_arrow]
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
def name
|
|
191
|
+
[ERB::Util.h(@label_text), order_indicator]
|
|
192
|
+
.compact
|
|
193
|
+
.join(' '.freeze)
|
|
194
|
+
.html_safe
|
|
195
|
+
end
|
|
196
|
+
|
|
197
|
+
def url_options
|
|
198
|
+
@params.except(:host).merge(
|
|
199
|
+
@options.except(:class, :data, :host).merge(
|
|
200
|
+
@search.context.search_key => search_and_sort_params))
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
def html_options(args)
|
|
204
|
+
if args.empty?
|
|
205
|
+
html_options = @options
|
|
206
|
+
else
|
|
207
|
+
deprecation_message = "Passing two trailing hashes to `sort_link` is deprecated, merge the trailing hashes into a single one."
|
|
208
|
+
caller_location = caller_locations(2, 2).first
|
|
209
|
+
warn "#{deprecation_message} (called at #{caller_location.path}:#{caller_location.lineno})"
|
|
210
|
+
html_options = extract_options_and_mutate_args!(args)
|
|
211
|
+
end
|
|
212
|
+
|
|
213
|
+
html_options.merge(
|
|
214
|
+
class: [['sort_link'.freeze, @current_dir], html_options[:class]]
|
|
215
|
+
.compact.join(' '.freeze)
|
|
216
|
+
)
|
|
217
|
+
end
|
|
218
|
+
|
|
219
|
+
private
|
|
220
|
+
|
|
221
|
+
def parameters_hash(params)
|
|
222
|
+
if params.respond_to?(:to_unsafe_h)
|
|
223
|
+
params.to_unsafe_h
|
|
224
|
+
else
|
|
225
|
+
params
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
|
|
229
|
+
def extract_sort_fields_and_mutate_args!(args)
|
|
230
|
+
return args.shift if args[0].is_a?(Array)
|
|
231
|
+
[@field]
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
def extract_label_and_mutate_args!(args)
|
|
235
|
+
return args.shift if args[0].is_a?(String)
|
|
236
|
+
Translate.attribute(@field, context: @search.context)
|
|
237
|
+
end
|
|
238
|
+
|
|
239
|
+
def extract_options_and_mutate_args!(args)
|
|
240
|
+
return args.shift.with_indifferent_access if args[0].is_a?(Hash)
|
|
241
|
+
{}
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
def search_and_sort_params
|
|
245
|
+
search_params.merge(s: sort_params)
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
def search_params
|
|
249
|
+
query_params = @params[@search.context.search_key]
|
|
250
|
+
query_params.is_a?(Hash) ? query_params : {}
|
|
251
|
+
end
|
|
252
|
+
|
|
253
|
+
def sort_params
|
|
254
|
+
sort_array = recursive_sort_params_build(@sort_fields)
|
|
255
|
+
return sort_array[0] if sort_array.length == 1
|
|
256
|
+
sort_array
|
|
257
|
+
end
|
|
258
|
+
|
|
259
|
+
def recursive_sort_params_build(fields)
|
|
260
|
+
return [] if fields.empty?
|
|
261
|
+
[parse_sort(fields[0])] + recursive_sort_params_build(fields.drop 1)
|
|
262
|
+
end
|
|
263
|
+
|
|
264
|
+
def parse_sort(field)
|
|
265
|
+
attr_name, new_dir = field.to_s.split(/\s+/)
|
|
266
|
+
if no_sort_direction_specified?(new_dir)
|
|
267
|
+
new_dir = detect_previous_sort_direction_and_invert_it(attr_name)
|
|
268
|
+
end
|
|
269
|
+
"#{attr_name} #{new_dir}"
|
|
270
|
+
end
|
|
271
|
+
|
|
272
|
+
def detect_previous_sort_direction_and_invert_it(attr_name)
|
|
273
|
+
if sort_dir = existing_sort_direction(attr_name)
|
|
274
|
+
direction_text(sort_dir)
|
|
275
|
+
else
|
|
276
|
+
default_sort_order(attr_name) || 'asc'.freeze
|
|
277
|
+
end
|
|
278
|
+
end
|
|
279
|
+
|
|
280
|
+
def existing_sort_direction(f = @field)
|
|
281
|
+
return unless sort = @search.sorts.detect { |s| s && s.name == f }
|
|
282
|
+
sort.dir
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
def default_sort_order(attr_name)
|
|
286
|
+
return @default_order[attr_name] if Hash === @default_order
|
|
287
|
+
@default_order
|
|
288
|
+
end
|
|
289
|
+
|
|
290
|
+
def order_indicator
|
|
291
|
+
return if @hide_indicator
|
|
292
|
+
return default_arrow if no_sort_direction_specified?
|
|
293
|
+
if @current_dir == 'desc'.freeze
|
|
294
|
+
up_arrow
|
|
295
|
+
else
|
|
296
|
+
down_arrow
|
|
297
|
+
end
|
|
298
|
+
end
|
|
299
|
+
|
|
300
|
+
def no_sort_direction_specified?(dir = @current_dir)
|
|
301
|
+
dir != 'asc'.freeze && dir != 'desc'.freeze
|
|
302
|
+
end
|
|
303
|
+
|
|
304
|
+
def direction_text(dir)
|
|
305
|
+
return 'asc'.freeze if dir == 'desc'.freeze
|
|
306
|
+
'desc'.freeze
|
|
307
|
+
end
|
|
308
|
+
end
|
|
309
|
+
end
|
|
310
|
+
end
|
|
311
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
ar:
|
|
2
|
+
ransack:
|
|
3
|
+
search: "بحث"
|
|
4
|
+
predicate: "فاعل"
|
|
5
|
+
and: "و"
|
|
6
|
+
or: "أو"
|
|
7
|
+
any: "أيُّ"
|
|
8
|
+
all: "كل"
|
|
9
|
+
combinator: "دالة توافقية"
|
|
10
|
+
attribute: "خاصية"
|
|
11
|
+
value: "قيمة"
|
|
12
|
+
condition: "شرط"
|
|
13
|
+
sort: "ترتيب"
|
|
14
|
+
asc: "تصاعدي"
|
|
15
|
+
desc: "تنازلي"
|
|
16
|
+
predicates:
|
|
17
|
+
eq: "معادل"
|
|
18
|
+
eq_any: "معادل على اﻷقل لواحد"
|
|
19
|
+
eq_all: "معادل للجميع"
|
|
20
|
+
not_eq: "ليس معادلا لـ"
|
|
21
|
+
not_eq_any: "ليس معادلا على اﻷقل لواحد"
|
|
22
|
+
not_eq_all: "ليس معادلا للجميع"
|
|
23
|
+
matches: "موائم"
|
|
24
|
+
matches_any: "موائم لواحد على اﻷقل"
|
|
25
|
+
matches_all: "موائم للجميع"
|
|
26
|
+
does_not_match: "لا يتواءم"
|
|
27
|
+
does_not_match_any: "لا يتواءم مع واحد على اﻷقل"
|
|
28
|
+
does_not_match_all: "لا يتواءم مع الجميع"
|
|
29
|
+
lt: "أصغر من"
|
|
30
|
+
lt_any: "أصغر لواحد على اﻷقل"
|
|
31
|
+
lt_all: "أصغر من الجميع"
|
|
32
|
+
lteq: "أصغر أو مساو لـ"
|
|
33
|
+
lteq_any: "أصغر أو مساو لواحد على اﻷقل"
|
|
34
|
+
lteq_all: "أصغر أو مساو للجميع"
|
|
35
|
+
gt: "أكبر من"
|
|
36
|
+
gt_any: "أكبر من واحد على اﻷقل"
|
|
37
|
+
gt_all: "أكبر من الجميع"
|
|
38
|
+
gteq: "أكبر أو مساو لـ"
|
|
39
|
+
gteq_any: "أكبر أو مساو لواحد على اﻷقل"
|
|
40
|
+
gteq_all: "أكبر أو مساو للجميع"
|
|
41
|
+
in: "متضمن لـ"
|
|
42
|
+
in_any: "متضمن لواحد على اﻷقل"
|
|
43
|
+
in_all: "متضمن للجميع"
|
|
44
|
+
not_in: "غير متضمن"
|
|
45
|
+
not_in_any: "غير متضمن لواحد على اﻷقل"
|
|
46
|
+
not_in_all: "غير متضمن للجميع"
|
|
47
|
+
cont: "محتو"
|
|
48
|
+
cont_any: "محتو لواحد على اﻷقل"
|
|
49
|
+
cont_all: "محتو لجميع"
|
|
50
|
+
not_cont: "غير محتو"
|
|
51
|
+
not_cont_any: "غير محتو لواحد على اﻷقل"
|
|
52
|
+
not_cont_all: "غير محتو للجميع"
|
|
53
|
+
start: "يبدأ بـ"
|
|
54
|
+
start_any: "يبدأ بواحد على اﻷقل"
|
|
55
|
+
start_all: "يبدأ بالجميع"
|
|
56
|
+
not_start: "لا يبدأ بـ"
|
|
57
|
+
not_start_any: "لا يبدأ بواحد على اﻷقل"
|
|
58
|
+
not_start_all: "لا يبدأ بالجميع"
|
|
59
|
+
end: "ينتهي بـ"
|
|
60
|
+
end_any: "ينتهي بواحد على اﻷقل"
|
|
61
|
+
end_all: "ينتهي بالجميع"
|
|
62
|
+
not_end: "لا ينتهي بـ"
|
|
63
|
+
not_end_any: "لا ينتهي بواحد على اﻷقل"
|
|
64
|
+
not_end_all: "لا ينتهي بالجميع"
|
|
65
|
+
'true': "صحيح"
|
|
66
|
+
'false': "خطأ"
|
|
67
|
+
present: "مستقبل"
|
|
68
|
+
blank: "فراغ"
|
|
69
|
+
'null': "عدم"
|
|
70
|
+
not_null: "غير مساو لقيمة عدم"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
az:
|
|
2
|
+
ransack:
|
|
3
|
+
search: "axtar"
|
|
4
|
+
predicate: "təsdiqlə"
|
|
5
|
+
and: "və"
|
|
6
|
+
or: "və ya"
|
|
7
|
+
any: "hər hansı"
|
|
8
|
+
all: "hamısı"
|
|
9
|
+
combinator: "birləşdirici"
|
|
10
|
+
attribute: "xüsusiyyət"
|
|
11
|
+
value: "dəyər"
|
|
12
|
+
condition: "şərt"
|
|
13
|
+
sort: "sırala"
|
|
14
|
+
asc: "artan"
|
|
15
|
+
desc: "azalan"
|
|
16
|
+
predicates:
|
|
17
|
+
eq: "bərabər"
|
|
18
|
+
eq_any: "hər hansı birinə bərabər"
|
|
19
|
+
eq_all: "hamısına bərabər"
|
|
20
|
+
not_eq: "bərabər deyil"
|
|
21
|
+
not_eq_any: "hər hansı birinə bərabər deyil"
|
|
22
|
+
not_eq_all: "heç birinə bərabər deyil"
|
|
23
|
+
matches: "uyğunlaşan"
|
|
24
|
+
matches_any: "hər hansı biri ilə uyğunlaşan"
|
|
25
|
+
matches_all: "hamısı ilə uyğunlaşan"
|
|
26
|
+
does_not_match: "uyğunlaşmayan"
|
|
27
|
+
does_not_match_any: "hər hansı biri ilə uyğunlaşmayan"
|
|
28
|
+
does_not_match_all: "heç biri ilə uyğunlaşmayan"
|
|
29
|
+
lt: "daha kiçik"
|
|
30
|
+
lt_any: "hər hansı birindən kiçik"
|
|
31
|
+
lt_all: "hamısından kiçik"
|
|
32
|
+
lteq: "daha kiçik və ya bərabər"
|
|
33
|
+
lteq_any: "daha kiçik və ya hər hansı birinə bərabər"
|
|
34
|
+
lteq_all: "daha kiçik və ya hamısına bərabər"
|
|
35
|
+
gt: "daha böyük "
|
|
36
|
+
gt_any: "hər hansı birindən daha böyük"
|
|
37
|
+
gt_all: "hamısından daha böyük"
|
|
38
|
+
gteq: "daha böyük və ya bərabər"
|
|
39
|
+
gteq_any: "daha böyük və ya hər hansı birine bərabər"
|
|
40
|
+
gteq_all: "daha böyük və ya hamısıne bərabər"
|
|
41
|
+
in: "içində"
|
|
42
|
+
in_any: "hər hansı birində"
|
|
43
|
+
in_all: "hamısında"
|
|
44
|
+
not_in: "içində deyil"
|
|
45
|
+
not_in_any: "hər hansı birində deyil"
|
|
46
|
+
not_in_all: "heç birində deyil"
|
|
47
|
+
cont: "ehtiva edən"
|
|
48
|
+
cont_any: "hər hansı birini ehtiva edən"
|
|
49
|
+
cont_all: "hamısını ehtiva edən"
|
|
50
|
+
not_cont: "ehtiva etməyən"
|
|
51
|
+
not_cont_any: "hər hansı birini ehtiva etməyən"
|
|
52
|
+
not_cont_all: "heç birini birini ehtiva etməyən"
|
|
53
|
+
start: "ilə başlayan"
|
|
54
|
+
start_any: "hər hansı biri ilə başlayan"
|
|
55
|
+
start_all: "hamısı ilə başlayan"
|
|
56
|
+
not_start: "ilə başlamayan"
|
|
57
|
+
not_start_any: "hər hansı biri ilə başlamayan"
|
|
58
|
+
not_start_all: "hiçbiri ilə başlamayan"
|
|
59
|
+
end: "ilə bitən"
|
|
60
|
+
end_any: "hər hansı biri ilə bitən"
|
|
61
|
+
end_all: "hamısı ilə bitən"
|
|
62
|
+
not_end: "ilə bitməyən"
|
|
63
|
+
not_end_any: "hər hansı biri ilə bitməyən"
|
|
64
|
+
not_end_all: "heç biri ilə bitməyən"
|
|
65
|
+
'true': "doğru"
|
|
66
|
+
'false': "yanlış"
|
|
67
|
+
present: "mövcüd"
|
|
68
|
+
blank: "boş"
|
|
69
|
+
'null': "keçərsiz"
|
|
70
|
+
not_null: "keçərli"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
bg:
|
|
2
|
+
ransack:
|
|
3
|
+
search: "търсене"
|
|
4
|
+
predicate: "предикат"
|
|
5
|
+
and: "и"
|
|
6
|
+
or: "или"
|
|
7
|
+
any: "всякакво"
|
|
8
|
+
all: "всички"
|
|
9
|
+
combinator: "комбинатор"
|
|
10
|
+
attribute: "атрибут"
|
|
11
|
+
value: "стойност"
|
|
12
|
+
condition: "условие"
|
|
13
|
+
sort: "сортиране"
|
|
14
|
+
asc: "възходящ"
|
|
15
|
+
desc: "низходящ"
|
|
16
|
+
predicates:
|
|
17
|
+
eq: "се равнява на"
|
|
18
|
+
eq_any: "се равнява на всяко"
|
|
19
|
+
eq_all: "се равнява на всички"
|
|
20
|
+
not_eq: "не е равно на"
|
|
21
|
+
not_eq_any: "не е равно на никое от"
|
|
22
|
+
not_eq_all: "не е равно на всички"
|
|
23
|
+
matches: "съвпада"
|
|
24
|
+
matches_any: "съвпада с някое"
|
|
25
|
+
matches_all: "съвпада с всички"
|
|
26
|
+
does_not_match: "не съвпада"
|
|
27
|
+
does_not_match_any: "не съвпада с никое"
|
|
28
|
+
does_not_match_all: "не съвпада с всички"
|
|
29
|
+
lt: "по-малко от"
|
|
30
|
+
lt_any: "по-малко от някое"
|
|
31
|
+
lt_all: "по-малко от всички"
|
|
32
|
+
lteq: "по-малко или равно на"
|
|
33
|
+
lteq_any: "по-малко или равно на някое"
|
|
34
|
+
lteq_all: "по-малко или равно на всички"
|
|
35
|
+
gt: "по-голямо от"
|
|
36
|
+
gt_any: "по-голямо от всякое"
|
|
37
|
+
gt_all: "по-голямо от всички"
|
|
38
|
+
gteq: "по-голямо или равно на"
|
|
39
|
+
gteq_any: "по-голямо или равно на всякое"
|
|
40
|
+
gteq_all: "по-голямо или равно на всички"
|
|
41
|
+
in: "в"
|
|
42
|
+
in_any: "във всякое"
|
|
43
|
+
in_all: "във всички"
|
|
44
|
+
not_in: "не в"
|
|
45
|
+
not_in_any: "не в никое"
|
|
46
|
+
not_in_all: "не във всички"
|
|
47
|
+
cont: "съдържа"
|
|
48
|
+
cont_any: "съдържа всякое"
|
|
49
|
+
cont_all: "съдържа всички"
|
|
50
|
+
not_cont: "не съдържа"
|
|
51
|
+
not_cont_any: "не съдържа никое"
|
|
52
|
+
not_cont_all: "не съдържа всички"
|
|
53
|
+
start: "започва с"
|
|
54
|
+
start_any: "започва с всякое"
|
|
55
|
+
start_all: "започва с всички"
|
|
56
|
+
not_start: "не започва с"
|
|
57
|
+
not_start_any: "не започва с никое"
|
|
58
|
+
not_start_all: "не започва с всички"
|
|
59
|
+
end: "завършва с"
|
|
60
|
+
end_any: "завършва с всякое"
|
|
61
|
+
end_all: "завършва с всички"
|
|
62
|
+
not_end: "не завършва с"
|
|
63
|
+
not_end_any: "не завършва с никое"
|
|
64
|
+
not_end_all: "не завършва с всички"
|
|
65
|
+
'true': "истина"
|
|
66
|
+
'false': "неистина"
|
|
67
|
+
present: "присъства"
|
|
68
|
+
blank: "е празно"
|
|
69
|
+
'null': "е нула"
|
|
70
|
+
not_null: "не е нула"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
ca:
|
|
2
|
+
ransack:
|
|
3
|
+
search: "cercar"
|
|
4
|
+
predicate: "predicat"
|
|
5
|
+
and: "i"
|
|
6
|
+
or: "o"
|
|
7
|
+
any: "qualsevol"
|
|
8
|
+
all: "tots"
|
|
9
|
+
combinator: "combinador"
|
|
10
|
+
attribute: "atribut"
|
|
11
|
+
value: "valor"
|
|
12
|
+
condition: "condició"
|
|
13
|
+
sort: "ordenar"
|
|
14
|
+
asc: "ascendent"
|
|
15
|
+
desc: "descendent"
|
|
16
|
+
predicates:
|
|
17
|
+
eq: "és igual a"
|
|
18
|
+
eq_any: "és igual a qualsevol"
|
|
19
|
+
eq_all: "és igual a tots"
|
|
20
|
+
not_eq: "no és igual a"
|
|
21
|
+
not_eq_any: "no és igual a qualsevol"
|
|
22
|
+
not_eq_all: "no és igual a tots"
|
|
23
|
+
matches: "coincideix"
|
|
24
|
+
matches_any: "coincideix a qualsevol"
|
|
25
|
+
matches_all: "coincideix a tots"
|
|
26
|
+
does_not_match: "no coincideix"
|
|
27
|
+
does_not_match_any: "no coincideix amb cap"
|
|
28
|
+
does_not_match_all: "no coincideix amb tots"
|
|
29
|
+
lt: "menor que"
|
|
30
|
+
lt_any: "menor que qualsevol"
|
|
31
|
+
lt_all: "menor o igual a"
|
|
32
|
+
lteq: "menor que o igual a"
|
|
33
|
+
lteq_any: "menor o igual a qualsevol"
|
|
34
|
+
lteq_all: "menor o igual a tots"
|
|
35
|
+
gt: "major que"
|
|
36
|
+
gt_any: "major que qualsevol"
|
|
37
|
+
gt_all: "major que tots"
|
|
38
|
+
gteq: "major que o igual a"
|
|
39
|
+
gteq_any: "major que o igual a qualsevol"
|
|
40
|
+
gteq_all: "major que o igual a tots"
|
|
41
|
+
in: "en"
|
|
42
|
+
in_any: "en qualsevol"
|
|
43
|
+
in_all: "en tots"
|
|
44
|
+
not_in: "no en"
|
|
45
|
+
not_in_any: "no en qualsevol"
|
|
46
|
+
not_in_all: "no en tots"
|
|
47
|
+
cont: "conté"
|
|
48
|
+
cont_any: "conté qualsevol"
|
|
49
|
+
cont_all: "conté tots"
|
|
50
|
+
not_cont: "no conté"
|
|
51
|
+
not_cont_any: "no conté cap"
|
|
52
|
+
not_cont_all: "no conté tota"
|
|
53
|
+
start: "comença per"
|
|
54
|
+
start_any: "comença per qualsevol"
|
|
55
|
+
start_all: "comença per tot"
|
|
56
|
+
not_start: "no comença per"
|
|
57
|
+
not_start_any: "no comença per qualsevol"
|
|
58
|
+
not_start_all: "no comença per tot"
|
|
59
|
+
end: "acaba en"
|
|
60
|
+
end_any: "acaba en qualsevol"
|
|
61
|
+
end_all: "acaba en tot"
|
|
62
|
+
not_end: "no acaba en"
|
|
63
|
+
not_end_any: "no acaba en qualsevol"
|
|
64
|
+
not_end_all: "no acaba en tot"
|
|
65
|
+
'true': "és verdader"
|
|
66
|
+
'false': "és fals"
|
|
67
|
+
present: "és present"
|
|
68
|
+
blank: "està en blanc"
|
|
69
|
+
'null': "és nul"
|
|
70
|
+
not_null: "no és nul"
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
cs:
|
|
2
|
+
ransack:
|
|
3
|
+
search: "vyhledávání"
|
|
4
|
+
predicate: "predikát"
|
|
5
|
+
and: "a"
|
|
6
|
+
or: "nebo"
|
|
7
|
+
any: "kteroukoliv"
|
|
8
|
+
all: "každou"
|
|
9
|
+
combinator: "kombinátor"
|
|
10
|
+
attribute: "atribut"
|
|
11
|
+
value: "hodnota"
|
|
12
|
+
condition: "podmínka"
|
|
13
|
+
sort: "řazení"
|
|
14
|
+
asc: "vzestupné"
|
|
15
|
+
desc: "sestupné"
|
|
16
|
+
predicates:
|
|
17
|
+
eq: "rovno"
|
|
18
|
+
eq_any: "rovno kterékoliv"
|
|
19
|
+
eq_all: "rovno všem"
|
|
20
|
+
not_eq: "nerovno"
|
|
21
|
+
not_eq_any: "nerovno kterékoliv"
|
|
22
|
+
not_eq_all: "nerovno všem"
|
|
23
|
+
matches: "odpovídá"
|
|
24
|
+
matches_any: "odpovídá kterékoliv"
|
|
25
|
+
matches_all: "odpovídá všem"
|
|
26
|
+
does_not_match: "neodpovídá"
|
|
27
|
+
does_not_match_any: "neodpovídá kterékoliv"
|
|
28
|
+
does_not_match_all: "neodpovídá všem"
|
|
29
|
+
lt: "menší než"
|
|
30
|
+
lt_any: "menší než kterákoliv"
|
|
31
|
+
lt_all: "menší než všechny"
|
|
32
|
+
lteq: "menší nebo rovno než"
|
|
33
|
+
lteq_any: "menší nebo rovno než kterákoliv"
|
|
34
|
+
lteq_all: "menší nebo rovno než všechny"
|
|
35
|
+
gt: "větší než"
|
|
36
|
+
gt_any: "větší než kterákoliv"
|
|
37
|
+
gt_all: "větší než všechny"
|
|
38
|
+
gteq: "větší nebo rovno než"
|
|
39
|
+
gteq_any: "větší nebo rovno než kterákoliv"
|
|
40
|
+
gteq_all: "větší nebo rovno než všechny"
|
|
41
|
+
in: "v"
|
|
42
|
+
in_any: "v kterékoliv"
|
|
43
|
+
in_all: "ve všech"
|
|
44
|
+
not_in: "není v"
|
|
45
|
+
not_in_any: "není v kterékoliv"
|
|
46
|
+
not_in_all: "není ve všech"
|
|
47
|
+
cont: "obsahuje"
|
|
48
|
+
cont_any: "obsahuje kterékoliv"
|
|
49
|
+
cont_all: "obsahuje všechny"
|
|
50
|
+
not_cont: "neobsahuje"
|
|
51
|
+
not_cont_any: "neobsahuje kteroukoliv"
|
|
52
|
+
not_cont_all: "neobsahuje všechny"
|
|
53
|
+
start: "začíná s"
|
|
54
|
+
start_any: "začíná s kteroukoliv"
|
|
55
|
+
start_all: "začíná se všemi"
|
|
56
|
+
not_start: "nezačíná s"
|
|
57
|
+
not_start_any: "nezačíná s kteroukoliv"
|
|
58
|
+
not_start_all: "nezačíná se všemi"
|
|
59
|
+
end: "končí s"
|
|
60
|
+
end_any: "končí s kteroukoliv"
|
|
61
|
+
end_all: "končí se všemi"
|
|
62
|
+
not_end: "nekončí s"
|
|
63
|
+
not_end_any: "nekončí s kteroukoliv"
|
|
64
|
+
not_end_all: "nekončí se všemi"
|
|
65
|
+
'true': "je pravdivé"
|
|
66
|
+
'false': "není pravdivé"
|
|
67
|
+
present: "je vyplněné"
|
|
68
|
+
blank: "je prázdné"
|
|
69
|
+
'null': "je null"
|
|
70
|
+
not_null: "není null"
|