mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add 3rd person aliases of Symbol#start_with?
and Symbol#end_with?
This is the opposite direction of #39152.
This commit is contained in:
parent
783a195cb7
commit
62a20c2a64
5 changed files with 68 additions and 0 deletions
|
@ -1,3 +1,12 @@
|
||||||
|
* Add 3rd person aliases of `Symbol#start_with?` and `Symbol#end_with?`.
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
:foo.starts_with?("f") # => true
|
||||||
|
:foo.ends_with?("o") # => true
|
||||||
|
```
|
||||||
|
|
||||||
|
*Ryuta Kamizono*
|
||||||
|
|
||||||
* Add override of unary plus for `ActiveSupport::Duration`.
|
* Add override of unary plus for `ActiveSupport::Duration`.
|
||||||
|
|
||||||
`+ 1.second` is now identical to `+1.second` to prevent errors
|
`+ 1.second` is now identical to `+1.second` to prevent errors
|
||||||
|
|
3
activesupport/lib/active_support/core_ext/symbol.rb
Normal file
3
activesupport/lib/active_support/core_ext/symbol.rb
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "active_support/core_ext/symbol/starts_ends_with"
|
|
@ -0,0 +1,14 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
class Symbol
|
||||||
|
def start_with?(prefix)
|
||||||
|
to_s.start_with?(prefix)
|
||||||
|
end unless :a.respond_to?(:start_with?)
|
||||||
|
|
||||||
|
def end_with?(suffix)
|
||||||
|
to_s.end_with?(suffix)
|
||||||
|
end unless :a.respond_to?(:end_with?)
|
||||||
|
|
||||||
|
alias :starts_with? :start_with?
|
||||||
|
alias :ends_with? :end_with?
|
||||||
|
end
|
28
activesupport/test/core_ext/symbol_ext_test.rb
Normal file
28
activesupport/test/core_ext/symbol_ext_test.rb
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require_relative "../abstract_unit"
|
||||||
|
require "active_support/core_ext/symbol"
|
||||||
|
|
||||||
|
class SymbolStartsEndsWithTest < ActiveSupport::TestCase
|
||||||
|
def test_start_end_with
|
||||||
|
s = :hello
|
||||||
|
assert s.start_with?("h")
|
||||||
|
assert s.start_with?("hel")
|
||||||
|
assert_not s.start_with?("el")
|
||||||
|
|
||||||
|
assert s.end_with?("o")
|
||||||
|
assert s.end_with?("lo")
|
||||||
|
assert_not s.end_with?("el")
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_starts_ends_with_alias
|
||||||
|
s = :hello
|
||||||
|
assert s.starts_with?("h")
|
||||||
|
assert s.starts_with?("hel")
|
||||||
|
assert_not s.starts_with?("el")
|
||||||
|
|
||||||
|
assert s.ends_with?("o")
|
||||||
|
assert s.ends_with?("lo")
|
||||||
|
assert_not s.ends_with?("el")
|
||||||
|
end
|
||||||
|
end
|
|
@ -1758,6 +1758,20 @@ INFO: The three of them return `nil` for blank receivers.
|
||||||
|
|
||||||
NOTE: Defined in `active_support/core_ext/string/conversions.rb`.
|
NOTE: Defined in `active_support/core_ext/string/conversions.rb`.
|
||||||
|
|
||||||
|
Extensions to `Symbol`
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
### `starts_with?` and `ends_with?`
|
||||||
|
|
||||||
|
Active Support defines 3rd person aliases of `Symbol#start_with?` and `Symbol#end_with?`:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
:foo.starts_with?("f") # => true
|
||||||
|
:foo.ends_with?("o") # => true
|
||||||
|
```
|
||||||
|
|
||||||
|
NOTE: Defined in `active_support/core_ext/symbol/starts_ends_with.rb`.
|
||||||
|
|
||||||
Extensions to `Numeric`
|
Extensions to `Numeric`
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue