Skip to content

Commit

Permalink
Better lint
Browse files Browse the repository at this point in the history
  • Loading branch information
bf4 committed Aug 31, 2015
1 parent b20f1f5 commit 9673b64
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions lib/active_model/serializer/lint.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,17 @@ def test_serializable_hash
# Typically, it is implemented by including ActiveModel::Serialization.
def test_read_attribute_for_serialization
assert_respond_to resource, :read_attribute_for_serialization, "The resource should respond to read_attribute_for_serialization"
assert_equal resource.method(:read_attribute_for_serialization).arity, 1
actual_arity = resource.method(:read_attribute_for_serialization).arity
if defined?(::Rubinius)
# 1 for def read_attribute_for_serialization(name); end
# -2 for alias :read_attribute_for_serialization :send for rbx because :shrug:
assert_includes [1, -2], actual_arity, "expected #{actual_arity.inspect} to be 1 or -2"
else
# using absolute value since arity is:
# 1 for def read_attribute_for_serialization(name); end
# -1 for alias :read_attribute_for_serialization :send
assert_includes [1, -1], actual_arity, "expected #{actual_arity.inspect} to be 1 or -1"
end
end

# Passes if the object responds to <tt>as_json</tt> and if it takes
Expand Down Expand Up @@ -68,15 +78,19 @@ def test_to_json
end

# Passes if the object responds to <tt>cache_key</tt> and if it takes no
# arguments.
# arguments (Rails 4.0) or a splat (Rails 4.1+).
# Fails otherwise.
#
# <tt>cache_key</tt> returns a (self-expiring) unique key for the object,
# which is used by the adapter.
# It is not required unless caching is enabled.
def test_cache_key
assert_respond_to resource, :cache_key
assert_equal resource.method(:cache_key).arity, 0
actual_arity = resource.method(:cache_key).arity
# using absolute value since arity is:
# 0 for Rails 4.1+, *timestamp_names
# -1 for Rails 4.0, no arguments
assert_includes [-1, 0], actual_arity, "expected #{actual_arity.inspect} to be 0 or -1"
end

# Passes if the object responds to <tt>id</tt> and if it takes no
Expand Down

0 comments on commit 9673b64

Please sign in to comment.