Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ignore empty blank options on fields #778

Merged
merged 77 commits into from
Apr 2, 2021
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
c5ad207
Add geo_point location field to base_spec.rb
Vitalina-Vakulchyk Mar 25, 2021
b58356a
Add geo_point expect to spec
Vitalina-Vakulchyk Mar 26, 2021
1e0fa94
Add field `ignore_blank` flag with ability to skip fields with .blank…
Vitalina-Vakulchyk Mar 26, 2021
bbebecb
Add ignore_blank to geo_point field spec in /spec/chewy/fields/base_s…
Vitalina-Vakulchyk Mar 26, 2021
bdf6d67
Merge branch 'master' into ignore-empty-blank-options-on-fields
Vitalina-Vakulchyk Mar 26, 2021
ab8cca5
Reorganize base_spec objects and scopes section
Vitalina-Vakulchyk Mar 26, 2021
f7cf5d3
Add geo_point type without ignore_blank: true flag spec
Vitalina-Vakulchyk Mar 26, 2021
cb6ee07
Update base_spec without redundant variables
Vitalina-Vakulchyk Mar 26, 2021
2271ede
Add surname and description to cities test table
Vitalina-Vakulchyk Mar 26, 2021
8d8f1ae
Add fields/base spec without location field for geo_point type
Vitalina-Vakulchyk Mar 26, 2021
02ceacd
Split base #compose result check into 2 methods
Vitalina-Vakulchyk Mar 26, 2021
235f77b
Remove spec of default spec behavior send nil when no field at all
Vitalina-Vakulchyk Mar 26, 2021
ff81e4e
Refactor base spec and trigger CI
Vitalina-Vakulchyk Mar 26, 2021
0336f24
Add spec for parental field with ignore_blank: true flag to fields/ba…
Vitalina-Vakulchyk Mar 29, 2021
12fa1f1
Add spec for parental field without ignore_blank: true flag to fields…
Vitalina-Vakulchyk Mar 29, 2021
619e172
Refactor fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
3e59693
Refactor lib/chewy/fields/base #compose key/value returning
Vitalina-Vakulchyk Mar 29, 2021
14fc202
Assign hashes to variables in fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
9b71f1b
Use inline return for if statement for #compose in fields/base
Vitalina-Vakulchyk Mar 29, 2021
3dad3dd
Rubocop: update type/witchcraft range definition
Vitalina-Vakulchyk Mar 29, 2021
2e69c18
Rubocop: refactor fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
996eb10
Rubocop: refactor fields/base_spec hashes
Vitalina-Vakulchyk Mar 29, 2021
2481339
Rubocop: continue to refactor fields/base_spec hashes
Vitalina-Vakulchyk Mar 29, 2021
9ae19ee
Regenerate rubocop_todo to hide "Redundant begin block" offence for l…
Vitalina-Vakulchyk Mar 29, 2021
8e809f8
Regenerate rubocop_todo to hide Ruby 3.0.0 offences
Vitalina-Vakulchyk Mar 29, 2021
82c198e
Update fields/base_spec to test parental and children fields with ign…
Vitalina-Vakulchyk Mar 29, 2021
fe3fa88
Uncomment fields/base geo_point specs
Vitalina-Vakulchyk Mar 29, 2021
243cde9
Update double quotes with single in fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
a049eba
Avoid Style/RedundantBegin Rubocop check for Ruby 2.7.2
Vitalina-Vakulchyk Mar 29, 2021
7ee6832
Add lib/chewy/type/witchcraft.rb to Lint/Syntax in rubocop_todo
Vitalina-Vakulchyk Mar 29, 2021
ccfcf2d
Revert "Add lib/chewy/type/witchcraft.rb to Lint/Syntax in rubocop_todo"
Vitalina-Vakulchyk Mar 29, 2021
039b1f5
Add lib/chewy/type/witchcraft.rb Style/SlicingWithRange to rubocop_todo
Vitalina-Vakulchyk Mar 29, 2021
94a60f2
Describe error of sending {} as location in fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
1b5972a
Rubocop remove space in fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
73f183f
Comment 2nd way of local: {} definition for fields/base_spec
Vitalina-Vakulchyk Mar 29, 2021
54dc3d5
Fix arguments precedency
Mar 29, 2021
8f55209
Fix geo_point type with ignore_blank: true flag in fields/base_spec
Vitalina-Vakulchyk Mar 30, 2021
9735359
Update Readme
Vitalina-Vakulchyk Mar 30, 2021
1e6de4f
Remove redundant space
Vitalina-Vakulchyk Mar 30, 2021
9f8e744
Update CHANGELOG
Vitalina-Vakulchyk Mar 30, 2021
8423088
Replace field_with_empty_value? with result.empty? statement for fiel…
Vitalina-Vakulchyk Mar 30, 2021
16e4e91
Replace .empty? with .blank? statement for fields/base_spec
Vitalina-Vakulchyk Mar 30, 2021
4867524
Allow to pass ignore_blank params as string
Vitalina-Vakulchyk Mar 30, 2021
5c4f3fb
Add spec for ignore_blank false for geo_point
Vitalina-Vakulchyk Mar 30, 2021
f5353a0
Add spec for geo_point ignore_blank:false
Vitalina-Vakulchyk Mar 30, 2021
075cc81
Updare response spec order for geo_point ignore_blank:false
Vitalina-Vakulchyk Mar 30, 2021
934701e
Update cities' surname field with historical_name field
Vitalina-Vakulchyk Mar 30, 2021
ab89ca1
Remove adding of cities = [] to countries in fields/base_spec
Vitalina-Vakulchyk Mar 30, 2021
3cf59e5
Split into 2 contents countries with and without cities
Vitalina-Vakulchyk Mar 30, 2021
7854793
Remove pry from gems
Vitalina-Vakulchyk Mar 30, 2021
7346ee8
Rubocop spaces
Vitalina-Vakulchyk Mar 30, 2021
e1c92de
Add specs for ignore_blank flag as string type
Vitalina-Vakulchyk Mar 30, 2021
057b265
Update rubocop_todo to avoid Lint/SymbolConversion string check
Vitalina-Vakulchyk Mar 30, 2021
7f760b1
Update Readme Skip record fields during import section with default v…
Vitalina-Vakulchyk Mar 30, 2021
0e5940e
Update Changelog with ``
Vitalina-Vakulchyk Mar 30, 2021
4e29d64
Simplify #compose ignore_blank
Vitalina-Vakulchyk Mar 30, 2021
2abc18c
Reorganize fields/base_spec contexts for ignore_blank option
Vitalina-Vakulchyk Mar 30, 2021
0830cc7
Rubocop it
Vitalina-Vakulchyk Mar 30, 2021
d6fb747
Remove Rubocop Style/SlicingWithRange offence
Vitalina-Vakulchyk Mar 31, 2021
9e657d2
Remove Rubocop Style/RedundantFreeze offence
Vitalina-Vakulchyk Mar 31, 2021
901355f
Revert "Remove Rubocop Style/RedundantFreeze offence"
Vitalina-Vakulchyk Mar 31, 2021
172758d
Remove Rubocop Style/RedundantBegin offence in lib/chewy/type/syncer.rb
Vitalina-Vakulchyk Mar 31, 2021
4a9e804
Remove Rubocop Style/RedundantBegin offence lib/chewy/search/request.rb
Vitalina-Vakulchyk Mar 31, 2021
a30139d
Add spec for with ignore_blank: false
Vitalina-Vakulchyk Mar 31, 2021
f0dffe3
Ruboco inline disable Lint/SymbolConversion for fields/base_spec for …
Vitalina-Vakulchyk Mar 31, 2021
bcb4326
Regenerate rubocop_todo
Vitalina-Vakulchyk Mar 31, 2021
56b4361
Update target Ruby version in rubocop.yml
Vitalina-Vakulchyk Mar 31, 2021
8b3fb90
Remove Rubocop Style/RedundantBegin offence for 2.7 and Rubocop versi…
Vitalina-Vakulchyk Mar 31, 2021
ffe7a3c
Update changelog with gramma
Vitalina-Vakulchyk Mar 31, 2021
7c88fca
Update readme with gramma
Vitalina-Vakulchyk Mar 31, 2021
d472fde
Update gramma and remove redundant check from fields/base_spec.rb
Vitalina-Vakulchyk Mar 31, 2021
cdbf68a
Update Rubocop TargetRubyVersion to 2.6
Vitalina-Vakulchyk Apr 1, 2021
4e6e3f9
Change compatibility with MRI from 2.5-3.0 to 2.6-3.0
Vitalina-Vakulchyk Apr 1, 2021
61d67cc
Mark in CHANGELOG dropping of Ruby 2.5 support
Vitalina-Vakulchyk Apr 2, 2021
e7ba698
Update CHANGELOG letter to uppercase in changes section
Vitalina-Vakulchyk Apr 2, 2021
df3ac19
Update rubocop_todo with $ rubocop --auto-gen-config
Vitalina-Vakulchyk Apr 2, 2021
ef2ce52
Try to launch CI without new .ruby-version file
Vitalina-Vakulchyk Apr 2, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Split base #compose result check into 2 methods
  • Loading branch information
Vitalina-Vakulchyk committed Mar 26, 2021
commit 02ceacd7821aef08d61fc5f78b69ddef2f528467
11 changes: 9 additions & 2 deletions lib/chewy/fields/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,14 +48,21 @@ def compose(*objects)
end
end

unless (@options[:ignore_blank] && @options[:ignore_blank] == true && !result.nil? && result.empty?) || (!@options[:ignore_blank] && @options[:type] && @options[:type] == :geo_point)
unless field_with_empty_value?(result) || geo_point_field_without_ignore_blank_flag?(result)
{name => result}
end
# {name => result}
end

private

def field_with_empty_value?(result)
@options[:ignore_blank] && @options[:ignore_blank] == true && !result.nil? && result.empty?
end

def geo_point_field_without_ignore_blank_flag?(result)
!@options[:ignore_blank] && @options[:type] && @options[:type] == :geo_point && !result.nil? && result.empty?
end

def evaluate(objects)
object = objects.first

Expand Down
9 changes: 4 additions & 5 deletions spec/chewy/fields/base_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -407,6 +407,8 @@
stub_model(:country)

City.belongs_to :country
Location.belongs_to :city
City.has_one :location, -> { order :id }
Country.has_many :cities, -> { order :id }
end

Expand Down Expand Up @@ -516,7 +518,7 @@

let(:country_with_cities) do
location = Location.create!(lat: '1', lon: '1')
cities = [City.create!(id: 1, name: 'City1', location: location), City.create!(id: 2, name: 'City2', location: location)]
cities = [City.create!(id: 1, name: 'City1'), City.create!(id: 2, name: 'City2')]

Country.create!(id: 1, cities: cities)
end
Expand All @@ -536,10 +538,7 @@

specify do
expect(CountriesIndex::Country.root.compose(
'id' => 1, 'cities' => [
{'id' => 1, 'name' => 'City1'},
{'id' => 2, 'name' => 'City2'}]
)
country_with_cities)
).to eq(
'id' => 1, 'cities' => [
{'id' => 1, 'name' => 'City1'},
Expand Down