From 07206d544080507bac9ea76c1847ca818b3121ff Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Mon, 11 Feb 2019 15:55:55 +1100 Subject: [PATCH 1/5] Update CI config to run under Ruby 2.3.6 --- scripts/buildbox.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/buildbox.sh b/scripts/buildbox.sh index f745da7..e48528c 100755 --- a/scripts/buildbox.sh +++ b/scripts/buildbox.sh @@ -2,7 +2,7 @@ set -e echo '--- setting ruby version' -rbenv local 2.1.2 +rbenv local 2.3.6 echo '--- bundling' bundle install -j $(nproc) --without production --quiet From 3d593233359b18d3e58e89cf383f670b4ab17a3b Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Mon, 11 Feb 2019 15:58:15 +1100 Subject: [PATCH 2/5] Remove Gemfile.lock --- Gemfile.lock | 67 ---------------------------------------------------- 1 file changed, 67 deletions(-) delete mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock deleted file mode 100644 index 5c917e8..0000000 --- a/Gemfile.lock +++ /dev/null @@ -1,67 +0,0 @@ -PATH - remote: . - specs: - boolean_dsl (1.4.0) - activesupport - parslet - -GEM - remote: https://rubygems.org/ - specs: - activesupport (4.1.1) - i18n (~> 0.6, >= 0.6.9) - json (~> 1.7, >= 1.7.7) - minitest (~> 5.1) - thread_safe (~> 0.1) - tzinfo (~> 1.1) - blankslate (2.1.2.4) - byebug (2.7.0) - columnize (~> 0.3) - debugger-linecache (~> 1.2) - cane (2.6.2) - parallel - codeclimate-test-reporter (0.4.1) - simplecov (>= 0.7.1, < 1.0.0) - columnize (0.8.9) - debugger-linecache (1.2.0) - diff-lcs (1.2.5) - docile (1.1.3) - factory_girl (4.4.0) - activesupport (>= 3.0.0) - i18n (0.6.9) - json (1.8.1) - minitest (5.3.4) - multi_json (1.10.1) - parallel (1.0.0) - parslet (1.6.1) - blankslate (~> 2.0) - rake (10.3.2) - rspec (2.14.1) - rspec-core (~> 2.14.0) - rspec-expectations (~> 2.14.0) - rspec-mocks (~> 2.14.0) - rspec-core (2.14.8) - rspec-expectations (2.14.5) - diff-lcs (>= 1.1.3, < 2.0) - rspec-mocks (2.14.6) - simplecov (0.8.2) - docile (~> 1.1.0) - multi_json - simplecov-html (~> 0.8.0) - simplecov-html (0.8.0) - thread_safe (0.3.3) - tzinfo (1.2.0) - thread_safe (~> 0.1) - -PLATFORMS - ruby - -DEPENDENCIES - boolean_dsl! - bundler (~> 1.0) - byebug (~> 2.7) - cane (~> 2.6) - codeclimate-test-reporter - factory_girl (~> 4.4) - rake (~> 10.1) - rspec (~> 2.14) From dd751d86349d33f71d50536a496c1e929fe74927 Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Mon, 11 Feb 2019 16:05:14 +1100 Subject: [PATCH 3/5] Remove codeclimate-test-reporter --- Gemfile | 2 +- spec/spec_helper.rb | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 7db40c9..91f99fd 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ source "https://rubygems.org" gemspec -gem "codeclimate-test-reporter", group: :test, require: nil \ No newline at end of file +gem "simplecov", group: :test, require: nil diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6710599..805d2ae 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,9 +1,6 @@ require 'simplecov' SimpleCov.start -require "codeclimate-test-reporter" -CodeClimate::TestReporter.start - SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ SimpleCov::Formatter::HTMLFormatter ] From 8f2bfe1fe283eb78deb9f9c6f0c4ac98b23f930d Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Mon, 11 Feb 2019 16:09:28 +1100 Subject: [PATCH 4/5] Fix RSpec deprecations about be_true and be_false --- spec/evaluator/context_spec.rb | 6 ++-- spec/evaluator/evaluate_spec.rb | 18 +++++----- spec/evaluator_spec.rb | 62 ++++++++++++++++----------------- 3 files changed, 43 insertions(+), 43 deletions(-) diff --git a/spec/evaluator/context_spec.rb b/spec/evaluator/context_spec.rb index 01b5bc7..dec17f4 100644 --- a/spec/evaluator/context_spec.rb +++ b/spec/evaluator/context_spec.rb @@ -15,8 +15,8 @@ context 'attribute' do specify { expect(evaluator.evaluate(attribute: 'alpha')).to eq('omega') } specify { expect(evaluator.evaluate(attribute: 'gamma')).to eq(7) } - specify { expect(evaluator.evaluate(attribute: 'delta')).to be_true } - specify { expect(evaluator.evaluate(attribute: 'yotta')).to be_false } + specify { expect(evaluator.evaluate(attribute: 'delta')).to be_truthy } + specify { expect(evaluator.evaluate(attribute: 'yotta')).to be_falsey } specify do expect { evaluator.evaluate(attribute: 'beta') }.to( raise_error(BooleanDsl::EvaluationFailed, 'Context does not have key beta')) @@ -55,4 +55,4 @@ ) end end -end \ No newline at end of file +end diff --git a/spec/evaluator/evaluate_spec.rb b/spec/evaluator/evaluate_spec.rb index f40f0ba..38f298e 100644 --- a/spec/evaluator/evaluate_spec.rb +++ b/spec/evaluator/evaluate_spec.rb @@ -11,15 +11,15 @@ left: { integer: '1' }, comparison_operator: '==', right: { integer: '1' }, - )).to be_true + )).to be_truthy end - + specify do expect(evaluator.evaluate( left: { integer: '1' }, comparison_operator: '<', right: { integer: '1' }, - )).to be_false + )).to be_falsey end specify do @@ -35,7 +35,7 @@ comparison_operator: '==', right: { integer: '1' }, } - )).to be_true + )).to be_truthy end specify do @@ -51,7 +51,7 @@ comparison_operator: '==', right: { integer: '1' }, } - )).to be_false + )).to be_falsey end specify do @@ -67,7 +67,7 @@ comparison_operator: '==', right: { integer: '1' }, } - )).to be_true + )).to be_truthy end specify do @@ -83,7 +83,7 @@ comparison_operator: '==', right: { integer: '2' }, } - )).to be_false + )).to be_falsey end specify do @@ -93,6 +93,6 @@ comparison_operator: '!=', right: { integer: '1' } } - )).to be_false + )).to be_falsey end -end \ No newline at end of file +end diff --git a/spec/evaluator_spec.rb b/spec/evaluator_spec.rb index fcc228b..1ad924a 100644 --- a/spec/evaluator_spec.rb +++ b/spec/evaluator_spec.rb @@ -4,22 +4,22 @@ context '#evaluate_comparison' do let(:evaluator) { described_class.new(nil, nil) } - specify { expect(evaluator.evaluate_comparison(1, '==', 1)).to be_true } - specify { expect(evaluator.evaluate_comparison(1, '==', 0)).to be_false } - specify { expect(evaluator.evaluate_comparison(1, '!=', 1)).to be_false } - specify { expect(evaluator.evaluate_comparison(1, '!=', 0)).to be_true } - - specify { expect(evaluator.evaluate_comparison('alpha', '==', 'alpha')).to be_true } - specify { expect(evaluator.evaluate_comparison('beta', '==', 'omega')).to be_false } - specify { expect(evaluator.evaluate_comparison('alpha', '!=', 'alpha')).to be_false } - specify { expect(evaluator.evaluate_comparison('beta', '!=', 'omega')).to be_true } - - specify { expect(evaluator.evaluate_comparison(10, '<', 20)).to be_true } - specify { expect(evaluator.evaluate_comparison(20, '<', 10)).to be_false } - specify { expect(evaluator.evaluate_comparison(20, '>', 10)).to be_true } - specify { expect(evaluator.evaluate_comparison(10, '>', 20)).to be_false } - specify { expect(evaluator.evaluate_comparison(20, '<=', 20)).to be_true } - specify { expect(evaluator.evaluate_comparison(20, '>=', 20)).to be_true } + specify { expect(evaluator.evaluate_comparison(1, '==', 1)).to be_truthy } + specify { expect(evaluator.evaluate_comparison(1, '==', 0)).to be_falsey } + specify { expect(evaluator.evaluate_comparison(1, '!=', 1)).to be_falsey } + specify { expect(evaluator.evaluate_comparison(1, '!=', 0)).to be_truthy } + + specify { expect(evaluator.evaluate_comparison('alpha', '==', 'alpha')).to be_truthy } + specify { expect(evaluator.evaluate_comparison('beta', '==', 'omega')).to be_falsey } + specify { expect(evaluator.evaluate_comparison('alpha', '!=', 'alpha')).to be_falsey } + specify { expect(evaluator.evaluate_comparison('beta', '!=', 'omega')).to be_truthy } + + specify { expect(evaluator.evaluate_comparison(10, '<', 20)).to be_truthy } + specify { expect(evaluator.evaluate_comparison(20, '<', 10)).to be_falsey } + specify { expect(evaluator.evaluate_comparison(20, '>', 10)).to be_truthy } + specify { expect(evaluator.evaluate_comparison(10, '>', 20)).to be_falsey } + specify { expect(evaluator.evaluate_comparison(20, '<=', 20)).to be_truthy } + specify { expect(evaluator.evaluate_comparison(20, '>=', 20)).to be_truthy } end context '#evaluate_boolean' do @@ -30,28 +30,28 @@ allow(evaluator).to receive(:evaluate).with(false).and_return(false) end - specify { expect(evaluator.evaluate_boolean(true, 'and', true)).to be_true } - specify { expect(evaluator.evaluate_boolean(true, 'and', false)).to be_false } - specify { expect(evaluator.evaluate_boolean(false, 'and', true)).to be_false } - specify { expect(evaluator.evaluate_boolean(false, 'and', false)).to be_false } + specify { expect(evaluator.evaluate_boolean(true, 'and', true)).to be_truthy } + specify { expect(evaluator.evaluate_boolean(true, 'and', false)).to be_falsey } + specify { expect(evaluator.evaluate_boolean(false, 'and', true)).to be_falsey } + specify { expect(evaluator.evaluate_boolean(false, 'and', false)).to be_falsey } - specify { expect(evaluator.evaluate_boolean(true, 'or', true)).to be_true } - specify { expect(evaluator.evaluate_boolean(true, 'or', false)).to be_true } - specify { expect(evaluator.evaluate_boolean(false, 'or', true)).to be_true } - specify { expect(evaluator.evaluate_boolean(false, 'or', false)).to be_false } + specify { expect(evaluator.evaluate_boolean(true, 'or', true)).to be_truthy } + specify { expect(evaluator.evaluate_boolean(true, 'or', false)).to be_truthy } + specify { expect(evaluator.evaluate_boolean(false, 'or', true)).to be_truthy } + specify { expect(evaluator.evaluate_boolean(false, 'or', false)).to be_falsey } end context 'full parse' do def outcome_for(expression, context_hash = {}) described_class.new(expression, context_hash).outcome end - specify { expect(outcome_for('1 == 1')).to be_true } - specify { expect(outcome_for('1 == 0')).to be_false } - specify { expect(outcome_for("(1 < 4 or 5 < 4) and (1 == 1 and 'alpha' == 'alpha')")).to be_true } - specify { expect(outcome_for('gamma == 7', { 'gamma' => 7 })).to be_true } - specify { expect(outcome_for('gamma == 8', { 'gamma' => 7 })).to be_false } - specify { expect(outcome_for("alpha == 'beta'", { 'alpha' => 'beta' })).to be_true } - specify { expect(outcome_for("alpha == 'beta'", { 'alpha' => 'delta' })).to be_false } + specify { expect(outcome_for('1 == 1')).to be_truthy } + specify { expect(outcome_for('1 == 0')).to be_falsey } + specify { expect(outcome_for("(1 < 4 or 5 < 4) and (1 == 1 and 'alpha' == 'alpha')")).to be_truthy } + specify { expect(outcome_for('gamma == 7', { 'gamma' => 7 })).to be_truthy } + specify { expect(outcome_for('gamma == 8', { 'gamma' => 7 })).to be_falsey } + specify { expect(outcome_for("alpha == 'beta'", { 'alpha' => 'beta' })).to be_truthy } + specify { expect(outcome_for("alpha == 'beta'", { 'alpha' => 'delta' })).to be_falsey } end end From 1286ed075a83ffa6d54f18236c95733bf2cf3541 Mon Sep 17 00:00:00 2001 From: Michael MacDonald Date: Mon, 11 Feb 2019 16:10:33 +1100 Subject: [PATCH 5/5] Switch to factory_bot --- boolean_dsl.gemspec | 2 +- spec/spec_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/boolean_dsl.gemspec b/boolean_dsl.gemspec index c6a5197..bc35663 100644 --- a/boolean_dsl.gemspec +++ b/boolean_dsl.gemspec @@ -16,7 +16,7 @@ Gem::Specification.new do |s| s.add_development_dependency 'bundler', '~> 1.0' s.add_development_dependency 'rspec', '~> 2.14' - s.add_development_dependency 'factory_girl', '~> 4.4' + s.add_development_dependency 'factory_bot', '~> 4.4' s.add_development_dependency 'cane', '~> 2.6' s.add_development_dependency 'byebug', '~> 2.7' s.add_development_dependency 'rake', '~> 10.1' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 805d2ae..3ecbba5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -18,7 +18,7 @@ config.filter_run :focus config.filter_run_excluding perf: true config.order = 'random' -# config.include FactoryGirl::Syntax::Methods +# config.include FactoryBot::Syntax::Methods end require 'parslet/convenience'