1
0
mirror of https://github.com/danbee/inny synced 2025-03-04 08:59:10 +00:00

Compare commits

..

6 Commits

Author SHA1 Message Date
3565a65051 Bump dependencies 2023-12-22 15:04:45 -06:00
Dan Barber
7b120879e1 Update version 2015-09-24 12:06:35 +01:00
Dan Barber
6b9e118895 Fix tests 2015-09-24 12:06:06 +01:00
Dan Barber
04539b69be Match syntax to ActiveSupport in? method 2015-09-24 11:58:47 +01:00
70c44927c1 Add extra example to readme 2015-09-22 15:30:28 +01:00
95730e957e Add Rubygems.org to allowed gem hosts 2015-09-21 22:03:10 +01:00
7 changed files with 53 additions and 35 deletions

View File

@ -11,7 +11,7 @@ I'd much rather ask an object if it was in a list. It just feels like it's the
right way round: right way round:
```ruby ```ruby
thing.in?('Egg', 'Bacon', 'Sausage') thing.in?(['Egg', 'Bacon', 'Sausage'])
``` ```
## Installation ## Installation
@ -37,7 +37,14 @@ Require Inny and then start testing your objects:
```ruby ```ruby
require 'inny' require 'inny'
object.in?('Foo', 'Bar') object.in?(['Foo', 'Bar'])
'Foo'.in?('Foobar')
5.in?(1..10)
list = [1, 2, 3]
puts "Yay!" if 2.in?(list)
``` ```
## Development ## Development
@ -48,7 +55,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
## Contributing ## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/inny. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct. Bug reports and pull requests are welcome on GitHub at https://github.com/danbee/inny. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
## License ## License

View File

@ -4,7 +4,7 @@ require "rake/testtask"
Rake::TestTask.new(:test) do |t| Rake::TestTask.new(:test) do |t|
t.libs << "test" t.libs << "test"
t.libs << "lib" t.libs << "lib"
t.test_files = FileList['test/**/*_test.rb'] t.test_files = FileList["test/**/*_test.rb"]
end end
task :default => :test task default: :test

View File

@ -1,7 +1,7 @@
# coding: utf-8 # coding: utf-8
lib = File.expand_path('../lib', __FILE__) lib = File.expand_path("../lib", __FILE__)
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
require 'inny/version' require "inny/version"
Gem::Specification.new do |spec| Gem::Specification.new do |spec|
spec.name = "inny" spec.name = "inny"
@ -9,25 +9,27 @@ Gem::Specification.new do |spec|
spec.authors = ["Dan Barber"] spec.authors = ["Dan Barber"]
spec.email = ["github@danbarber.me"] spec.email = ["github@danbarber.me"]
spec.summary = %q{Better syntax for testing whether an object is in a list} spec.summary = "Better syntax for testing whether an object is in a list"
spec.description = %q{Better syntax for testing whether an object is in a list} spec.description = "Better syntax for testing whether an object is in a list"
spec.homepage = "https://github.com/danbee/inny" spec.homepage = "https://github.com/danbee/inny"
spec.license = "MIT" spec.license = "MIT"
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
# delete this section to allow pushing this gem to any host. # delete this section to allow pushing this gem to any host.
if spec.respond_to?(:metadata) if spec.respond_to?(:metadata)
spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'" spec.metadata["allowed_push_host"] = "https://rubygems.org"
else else
raise "RubyGems 2.0 or newer is required to protect against public gem pushes." raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
end end
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) } spec.files =
`git ls-files -z`.split("\x0")
.reject { |f| f.match(%r{^(test|spec|features)/}) }
spec.bindir = "exe" spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"] spec.require_paths = ["lib"]
spec.add_development_dependency "bundler", "~> 1.10" spec.add_development_dependency "bundler", "~> 2.4"
spec.add_development_dependency "rake", "~> 10.0" spec.add_development_dependency "rake", "~> 13.0"
spec.add_development_dependency "minitest" spec.add_development_dependency "minitest"
end end

View File

@ -1,8 +1,12 @@
require "inny/version" require "inny/version"
module Inny module Inny
def in?(*list) def in?(object)
list.include?(self) object.include?(self)
rescue NoMethodError
raise ArgumentError.new(
"The parameter passed to #in? must respond to #include?"
)
end end
end end

View File

@ -1,3 +1,3 @@
module Inny module Inny
VERSION = "1.0.0" VERSION = "3.0.0"
end end

View File

@ -1,4 +1,4 @@
require 'test_helper' require "test_helper"
class InnyTest < Minitest::Test class InnyTest < Minitest::Test
def test_that_it_has_a_version_number def test_that_it_has_a_version_number
@ -6,19 +6,24 @@ class InnyTest < Minitest::Test
end end
def test_it_finds_integers def test_it_finds_integers
assert 8.in?(1, 2, 3) == false assert 8.in?([7, 8, 9])
assert 8.in?(7, 8, 9) == true refute 8.in?([1, 2, 3])
end end
def test_it_finds_strings def test_it_finds_strings
assert 'Egg'.in?('Apple', 'Orange', 'Banana') == false assert "Egg".in?(%w[Bacon Sausage Egg])
assert 'Egg'.in?('Bacon', 'Sausage', 'Egg') == true refute "Egg".in?(%w[Apple Orange Banana])
end
def test_it_finds_substrings
assert "bar".in?("Foobar")
refute "egg".in?("Foobar")
end end
def test_it_finds_things_in_an_array def test_it_finds_things_in_an_array
list = ['John', 'Jimmy', 'Robert'] list = %w[John Jimmy Robert]
assert 'John Paul'.in?(*list) == false assert "Jimmy".in?(list)
assert 'Jimmy'.in?(*list) == true refute "John Paul".in?(list)
end end
end end

View File

@ -1,4 +1,4 @@
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
require 'inny' require "inny"
require 'minitest/autorun' require "minitest/autorun"