Skip to content

Commit

Permalink
Merge pull request rails#13059 from imkmf/cycle-accepts-array
Browse files Browse the repository at this point in the history
Cycle object should accept an array

Conflicts:
	actionview/CHANGELOG.md
  • Loading branch information
rafaelfranca committed Dec 6, 2013
2 parents 12544f9 + 1eaa521 commit a220b15
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 1 deletion.
18 changes: 18 additions & 0 deletions actionview/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
* A Cycle object should accept an array and cycle through it as it would with a set of
comma-separated objects.

arr = [1,2,3]
cycle(arr) # => '1'
cycle(arr) # => '2'
cycle(arr) # => '3'

Previously, it would return the array as a string, because it took the array as a
single object:

arr = [1,2,3]
cycle(arr) # => '[1,2,3]'
cycle(arr) # => '[1,2,3]'
cycle(arr) # => '[1,2,3]'

*Kristian Freeman*

* Label tags generated by collection helpers only inherit the `:index` and
`:namespace` from the input, because only these attributes modifies the
`for` attribute of the label. Also, the input attributes don't have
Expand Down
2 changes: 1 addition & 1 deletion actionview/lib/action_view/helpers/text_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -316,7 +316,7 @@ def cycle(first_value, *values)
options = values.extract_options!
name = options.fetch(:name, 'default')

values.unshift(first_value)
values.unshift(*first_value)

cycle = get_cycle(name)
unless cycle && cycle.values == values
Expand Down
7 changes: 7 additions & 0 deletions actionview/test/template/text_helper_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -386,6 +386,13 @@ def test_cycle
assert_equal("3", cycle("one", 2, "3"))
end

def test_cycle_with_array
array = [1, 2, 3]
assert_equal("1", cycle(array))
assert_equal("2", cycle(array))
assert_equal("3", cycle(array))
end

def test_cycle_with_no_arguments
assert_raise(ArgumentError) { cycle }
end
Expand Down

0 comments on commit a220b15

Please sign in to comment.