diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b1d1bae..93b9b92 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -6,11 +6,16 @@ jobs: test: runs-on: ubuntu-latest + strategy: + matrix: + ruby: ['2.7', '3.2'] + steps: - uses: actions/checkout@v2 - - uses: ruby/setup-ruby@v1.78.0 + - name: Set up Ruby ${{ matrix.ruby }} + uses: ruby/setup-ruby@v1 with: - ruby-version: 2.4 + ruby-version: ${{ matrix.ruby }} bundler: 1 bundler-cache: true env: diff --git a/Dockerfile b/Dockerfile index 67633b8..82667d4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,12 @@ -FROM ruby:2.3-alpine +FROM ruby:3.2-alpine RUN apk add --no-cache --update bash +COPY Gemfile elastic_search_framework.gemspec . +COPY lib/elastic_search_framework/version.rb ./lib/elastic_search_framework/ + RUN apk add --no-cache --update --virtual .gem-builddeps make gcc libc-dev ruby-json \ - && gem install -N oj -v 2.15.0 \ - && gem install -N json -v 2.1.0 \ + && bundle \ && apk del .gem-builddeps # Create application directory and set it as the WORKDIR. diff --git a/Gemfile b/Gemfile index c5b1149..11bebb0 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gem 'json', '2.1.0' +gem 'json' # Specify your gem's dependencies in elastic_search_framework.gemspec gemspec diff --git a/README.md b/README.md index 17068b4..9d989f1 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ Or install it yourself as: ## Usage -##Global Config +## Global Config ### #namespace The namespace is used to set the prefix applied to all table and index names. @@ -241,8 +241,7 @@ To run the tests locally, we use Docker to provide both a Ruby and JRuby environ > This builds the Ruby docker image. ```bash -cd script -./setup.sh +./script/setup.sh ``` ### Run Tests: @@ -250,8 +249,7 @@ cd script > This executes the test suite. ```bash -cd script -./test.sh +./script/test.sh ``` ### Cleanup @@ -259,8 +257,7 @@ cd script > This is used to clean down docker image created in the setup script. ```bash -cd script -./cleanup.sh +./script/cleanup.sh ``` ## Development diff --git a/script/docker-compose.yml b/docker-compose.yml similarity index 92% rename from script/docker-compose.yml rename to docker-compose.yml index d32a539..1b21d48 100644 --- a/script/docker-compose.yml +++ b/docker-compose.yml @@ -18,4 +18,4 @@ services: depends_on: - elasticsearch volumes: - - ../:/elastic_search_framework + - ./:/elastic_search_framework diff --git a/elastic_search_framework.gemspec b/elastic_search_framework.gemspec index 5633480..49701eb 100644 --- a/elastic_search_framework.gemspec +++ b/elastic_search_framework.gemspec @@ -19,10 +19,11 @@ Gem::Specification.new do |spec| spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) } spec.require_paths = ["lib"] - spec.add_development_dependency 'bundler', '~> 1.11' + spec.add_development_dependency 'bundler' spec.add_development_dependency 'rake', '~> 10.0' spec.add_development_dependency 'rspec' spec.add_development_dependency 'pry' + spec.add_development_dependency 'pry-byebug' spec.add_dependency 'hash_kit', '~> 0.5' spec.add_dependency 'json' spec.add_dependency 'connection_pool' diff --git a/lib/elastic_search_framework/index.rb b/lib/elastic_search_framework/index.rb index 9cf5aa2..8232706 100644 --- a/lib/elastic_search_framework/index.rb +++ b/lib/elastic_search_framework/index.rb @@ -176,21 +176,21 @@ def get_item(id:, type: 'default', routing_key: nil) options = { index: self, id: id, type: type } options[:routing_key] = routing_key if routing_enabled? && routing_key - repository.get(options) + repository.get(**options) end def put_item(type: 'default', item:, op_type: 'index', routing_key: nil) options = { entity: item, index: self, type: type, op_type: op_type } options[:routing_key] = routing_key if routing_enabled? && routing_key - repository.set(options) + repository.set(**options) end def delete_item(id:, type: 'default', routing_key: nil) options = { index: self, id: id, type: type } options[:routing_key] = routing_key if routing_enabled? && routing_key - repository.drop(options) + repository.drop(**options) end def query diff --git a/lib/elastic_search_framework/index_alias.rb b/lib/elastic_search_framework/index_alias.rb index d76284e..79306b6 100644 --- a/lib/elastic_search_framework/index_alias.rb +++ b/lib/elastic_search_framework/index_alias.rb @@ -129,7 +129,7 @@ def get_item(id:, type: "default", routing_key: nil) options = { index: self, id: id, type: type } options[:routing_key] = routing_key if active_index.routing_enabled? && routing_key - repository.get(options) + repository.get(**options) end def put_item(type: "default", item:, op_type: 'index', routing_key: nil) @@ -137,7 +137,7 @@ def put_item(type: "default", item:, op_type: 'index', routing_key: nil) options = { entity: item, index: index[:klass], type: type, op_type: op_type } options[:routing_key] = routing_key if index[:klass].routing_enabled? && routing_key - repository.set(options) + repository.set(**options) end end @@ -146,7 +146,7 @@ def delete_item(id:, type: "default", routing_key: nil) options = { index: index[:klass], id: id, type: type } options[:routing_key] = routing_key if index[:klass].routing_enabled? && routing_key - repository.drop(options) + repository.drop(**options) end end diff --git a/lib/elastic_search_framework/repository.rb b/lib/elastic_search_framework/repository.rb index 2d6563f..f6af143 100644 --- a/lib/elastic_search_framework/repository.rb +++ b/lib/elastic_search_framework/repository.rb @@ -74,7 +74,7 @@ def drop(index:, id:, type: 'default', routing_key: nil) end def query(index:, expression:, type: 'default', limit: 10, count: false, routing_key: nil) - uri_string = "#{host}/#{index.full_name}/#{type}/_search?q=#{URI.encode(expression)}&size=#{limit}" + uri_string = "#{host}/#{index.full_name}/#{type}/_search?q=#{CGI::escape(expression)}&size=#{limit}" uri_string += "&routing=#{routing_key}" if routing_key uri = URI(uri_string) diff --git a/lib/elastic_search_framework/version.rb b/lib/elastic_search_framework/version.rb index 2089860..c85437c 100644 --- a/lib/elastic_search_framework/version.rb +++ b/lib/elastic_search_framework/version.rb @@ -1,3 +1,3 @@ module ElasticSearchFramework - VERSION = '2.4.0' + VERSION = '2.4.1' end diff --git a/script/setup.sh b/script/setup.sh index 1e653c5..bb2b1fb 100755 --- a/script/setup.sh +++ b/script/setup.sh @@ -4,6 +4,6 @@ echo setup starting..... docker-compose rm echo build docker image -cd ../ && docker build --rm -t sage/elasticsearch_test_runner . +docker build --rm -t sage/elasticsearch_test_runner . echo setup complete