Class: ActionView::Helpers::JavaScriptCollectionProxy
Overview
Constant Summary
collapse
- ENUMERABLE_METHODS_WITH_RETURN =
[:all, :any, :collect, :map, :detect, :find, :find_all, :select, :max, :min, :partition, :reject, :sort_by, :in_groups_of, :each_slice]
- ENUMERABLE_METHODS =
ENUMERABLE_METHODS_WITH_RETURN + [:each]
Instance Attribute Summary collapse
Instance Method Summary
collapse
-
#each_slice(variable, number, &block) ⇒ Object
-
#grep(variable, pattern, &block) ⇒ Object
-
#in_groups_of(variable, number, fill_with = nil) ⇒ Object
-
#initialize(generator, pattern) ⇒ JavaScriptCollectionProxy
constructor
A new instance of JavaScriptCollectionProxy.
-
#inject(variable, memo, &block) ⇒ Object
-
#pluck(variable, property) ⇒ Object
-
#zip(variable, *arguments, &block) ⇒ Object
#is_a?
Constructor Details
Returns a new instance of JavaScriptCollectionProxy.
842
843
844
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 842
def initialize(generator, pattern)
super(generator, @pattern = pattern)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *arguments, &block) ⇒ Object
889
890
891
892
893
894
895
896
897
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 889
def method_missing(method, *arguments, &block)
if ENUMERABLE_METHODS.include?(method)
returnable = ENUMERABLE_METHODS_WITH_RETURN.include?(method)
variable = arguments.first if returnable
enumerate(method, {:variable => (arguments.first if returnable), :return => returnable, :yield_args => %w(value index)}, &block)
else
super
end
end
|
Instance Attribute Details
#generator ⇒ Object
Returns the value of attribute generator.
839
840
841
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 839
def generator
@generator
end
|
Instance Method Details
#each_slice(variable, number, &block) ⇒ Object
846
847
848
849
850
851
852
853
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 846
def each_slice(variable, number, &block)
if block
enumerate :eachSlice, :variable => variable, :method_args => [number], :yield_args => %w(value index), :return => true, &block
else
add_variable_assignment!(variable)
append_enumerable_function!("eachSlice(#{::ActiveSupport::JSON.encode(number)});")
end
end
|
#grep(variable, pattern, &block) ⇒ Object
855
856
857
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 855
def grep(variable, pattern, &block)
enumerate :grep, :variable => variable, :return => true, :method_args => [::ActiveSupport::JSON::Variable.new(pattern.inspect)], :yield_args => %w(value index), &block
end
|
#in_groups_of(variable, number, fill_with = nil) ⇒ Object
859
860
861
862
863
864
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 859
def in_groups_of(variable, number, fill_with = nil)
arguments = [number]
arguments << fill_with unless fill_with.nil?
add_variable_assignment!(variable)
append_enumerable_function!("inGroupsOf(#{arguments_for_call arguments});")
end
|
#inject(variable, memo, &block) ⇒ Object
866
867
868
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 866
def inject(variable, memo, &block)
enumerate :inject, :variable => variable, :method_args => [memo], :yield_args => %w(memo value index), :return => true, &block
end
|
#pluck(variable, property) ⇒ Object
870
871
872
873
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 870
def pluck(variable, property)
add_variable_assignment!(variable)
append_enumerable_function!("pluck(#{::ActiveSupport::JSON.encode(property)});")
end
|
#zip(variable, *arguments, &block) ⇒ Object
875
876
877
878
879
880
881
882
883
884
885
886
|
# File 'lib/action_view/helpers/jquery_helper.rb', line 875
def zip(variable, *arguments, &block)
add_variable_assignment!(variable)
append_enumerable_function!("zip(#{arguments_for_call arguments}")
if block
function_chain[-1] += ", function(array) {"
yield ::ActiveSupport::JSON::Variable.new('array')
add_return_statement!
@generator << '});'
else
function_chain[-1] += ');'
end
end
|