Skip to content
Permalink
Browse files

Use Hash#each_key instead of Hash#keys.each

Hash#keys.each allocates an array of keys; Hash#each_key iterates through the
keys without allocating a new array. This is the reason why Hash#each_key
exists.
  • Loading branch information...
sferik committed Sep 29, 2014
1 parent 3b451fc commit e2b49b203f2cb6cef93283f14838f21bf6ffb4a2
@@ -10,7 +10,7 @@
<tr>
<td>
<pre class="line_numbers">
<% extract_source[:code].keys.each do |line_number| %>
<% extract_source[:code].each_key do |line_number| %>
<span><%= line_number -%></span>
<% end %>
</pre>
@@ -43,11 +43,11 @@ def test_override_paths_for_member_and_collection_methods
:member => member_methods,
:path_names => path_names do |options|

collection_methods.keys.each do |action|
collection_methods.each_key do |action|
assert_named_route "/messages/#{path_names[action] || action}", "#{action}_messages_path", :action => action
end

member_methods.keys.each do |action|
member_methods.each_key do |action|
assert_named_route "/messages/1/#{path_names[action] || action}", "#{action}_message_path", :action => action, :id => "1"
end

@@ -150,7 +150,7 @@ def test_with_collection_actions
end

assert_restful_named_routes_for :messages do |options|
actions.keys.each do |action|
actions.each_key do |action|
assert_named_route "/messages/#{action}", "#{action}_messages_path", :action => action
end
end
@@ -180,7 +180,7 @@ def test_with_collection_actions_and_name_prefix
end

assert_restful_named_routes_for :messages, :path_prefix => 'threads/1/', :name_prefix => 'thread_', :options => { :thread_id => '1' } do |options|
actions.keys.each do |action|
actions.each_key do |action|
assert_named_route "/threads/1/messages/#{action}", "#{action}_thread_messages_path", :action => action
end
end
@@ -207,7 +207,7 @@ def test_with_collection_actions_and_name_prefix_and_member_action_with_same_nam
end

assert_restful_named_routes_for :messages, :path_prefix => 'threads/1/', :name_prefix => 'thread_', :options => { :thread_id => '1' } do |options|
actions.keys.each do |action|
actions.each_key do |action|
assert_named_route "/threads/1/messages/#{action}", "#{action}_thread_messages_path", :action => action
end
end
@@ -237,7 +237,7 @@ def test_with_collection_action_and_name_prefix_and_formatted
end

assert_restful_named_routes_for :messages, :path_prefix => 'threads/1/', :name_prefix => 'thread_', :options => { :thread_id => '1' } do |options|
actions.keys.each do |action|
actions.each_key do |action|
assert_named_route "/threads/1/messages/#{action}.xml", "#{action}_thread_messages_path", :action => action, :format => 'xml'
end
end
@@ -503,7 +503,7 @@ def test_assert_realistic_path_parameters
get :test_params, :id => 20, :foo => Object.new

# All elements of path_parameters should use Symbol keys
@request.path_parameters.keys.each do |key|
@request.path_parameters.each_key do |key|
assert_kind_of Symbol, key
end
end
@@ -3,7 +3,7 @@
class MimeTypeTest < ActiveSupport::TestCase

test "parse single" do
Mime::LOOKUP.keys.each do |mime_type|
Mime::LOOKUP.each_key do |mime_type|
unless mime_type == 'image/*'
assert_equal [Mime::Type.lookup(mime_type)], Mime::Type.parse(mime_type)
end
@@ -525,7 +525,7 @@ def self.create_fixtures(fixtures_directory, fixture_set_names, class_names = {}
conn = fs.model_class.respond_to?(:connection) ? fs.model_class.connection : connection
table_rows = fs.table_rows

table_rows.keys.each do |table|
table_rows.each_key do |table|
conn.delete "DELETE FROM #{conn.quote_table_name(table)}", 'Fixture Delete'
end

@@ -215,7 +215,7 @@ db_namespace = namespace :db do

Dir["#{base_dir}/**/*.yml"].each do |file|
if data = YAML::load(ERB.new(IO.read(file)).result)
data.keys.each do |key|
data.each_key do |key|
key_id = ActiveRecord::FixtureSet.identify(key)

if key == label || key_id == id.to_i
@@ -22,7 +22,7 @@ def test_period_for_local
assert_instance_of TZInfo::TimezonePeriod, zone.period_for_local(Time.utc(2000))
end

ActiveSupport::TimeZone::MAPPING.keys.each do |name|
ActiveSupport::TimeZone::MAPPING.each_key do |name|
define_method("test_map_#{name.downcase.gsub(/[^a-z]/, '_')}_to_tzinfo") do
zone = ActiveSupport::TimeZone[name]
assert_respond_to zone.tzinfo, :period_for_local

0 comments on commit e2b49b2

Please sign in to comment.
You can’t perform that action at this time.