diff --git a/.gitignore b/.gitignore index a4d874f..e53dbc8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,7 @@ /test/dummy/log/*.log /test/dummy/tmp/ /test/dummy/dummy_test +/test/dummy/*-wal +/test/dummy/*-shm /Gemfile.lock /coverage diff --git a/Gemfile b/Gemfile index f72b5c6..6c24393 100644 --- a/Gemfile +++ b/Gemfile @@ -12,7 +12,7 @@ gem "standard" group :test do gem "pg" - gem "sqlite3" + gem "sqlite3", "~> 1.4" gem "mysql2" gem "simplecov", require: false gem 'simplecov-cobertura', require: false diff --git a/lib/enummer/extension.rb b/lib/enummer/extension.rb index a48fae4..c215e3c 100644 --- a/lib/enummer/extension.rb +++ b/lib/enummer/extension.rb @@ -26,7 +26,7 @@ def enummer(values) def _enummer_build_with_scope(attribute_name, value_names) scope "with_#{attribute_name}", lambda { |desired| - expected = Array.wrap(desired).sum(0) { |value| 1 << value_names.index(value) } + expected = Array.wrap(desired).sum(0) { |value| 1 << value_names.index(value.to_sym) } where("#{attribute_name} & :expected = :expected", expected: expected) } diff --git a/test/enummer_test.rb b/test/enummer_test.rb index 11b3d2a..5130d45 100644 --- a/test/enummer_test.rb +++ b/test/enummer_test.rb @@ -31,6 +31,8 @@ def setup test "with_ scope returns users with all of those bits set" do assert_equal [@user1], User.with_permissions(%i[execute read write]) + assert_equal [@user1], User.with_permissions(%w[execute read write]) + assert_equal [@user1, @user2], User.with_permissions(['read', :write]) end test "not scopes return users without those bits set" do