kirgudu_refs 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/app/helpers/kirgudu_refs/model_basic_properties.rb +69 -0
  3. data/app/models/kirgudu_refs/base_model.rb +0 -8
  4. data/app/models/kirgudu_refs/finances.rb +7 -0
  5. data/app/models/kirgudu_refs/finances/bank.rb +116 -0
  6. data/app/models/kirgudu_refs/globe/city.rb +57 -57
  7. data/app/models/kirgudu_refs/globe/country.rb +69 -53
  8. data/app/models/kirgudu_refs/globe/region.rb +20 -25
  9. data/app/models/kirgudu_refs/globe/state.rb +58 -61
  10. data/app/models/kirgudu_refs/globe/subway_line.rb +29 -25
  11. data/app/models/kirgudu_refs/globe/subway_station.rb +43 -40
  12. data/app/models/kirgudu_refs/globe/timezone.rb +40 -5
  13. data/app/models/kirgudu_refs/it.rb +1 -1
  14. data/app/models/kirgudu_refs/it/encoding.rb +31 -28
  15. data/app/models/kirgudu_refs/it/hosting_type.rb +50 -0
  16. data/app/models/kirgudu_refs/it/operating_system.rb +34 -24
  17. data/app/models/kirgudu_refs/it/operating_system_family.rb +55 -4
  18. data/app/models/kirgudu_refs/it/processor_architecture.rb +32 -5
  19. data/app/models/kirgudu_refs/it/top_level_domain.rb +26 -0
  20. data/app/models/kirgudu_refs/it/website_type.rb +49 -0
  21. data/app/models/kirgudu_refs/national/currency.rb +59 -52
  22. data/app/models/kirgudu_refs/national/language.rb +84 -79
  23. data/app/models/kirgudu_refs/shops.rb +1 -1
  24. data/app/models/kirgudu_refs/shops/manufacturer.rb +37 -33
  25. data/config/database.yml +10 -0
  26. data/db/migrate/20130831122828_create_kirgudu_refs_it_operating_system_families.rb +12 -4
  27. data/db/migrate/20130831122900_create_kirgudu_refs_it_encodings.rb +12 -3
  28. data/db/migrate/20130831123418_create_kirgudu_refs_globe_cities.rb +17 -7
  29. data/db/migrate/20130831123443_create_kirgudu_refs_globe_regions.rb +17 -10
  30. data/db/migrate/20130831123613_create_kirgudu_refs_globe_states.rb +15 -8
  31. data/db/migrate/20130831123640_create_kirgudu_refs_globe_countries.rb +15 -7
  32. data/db/migrate/20130831124432_create_kirgudu_refs_globe_subway_lines.rb +18 -5
  33. data/db/migrate/20130831124648_create_kirgudu_refs_globe_subway_stations.rb +15 -6
  34. data/db/migrate/20130831125136_create_kirgudu_refs_globe_timezones.rb +13 -4
  35. data/db/migrate/20130831125626_create_kirgudu_refs_it_operating_systems.rb +14 -6
  36. data/db/migrate/20130831125703_create_kirgudu_refs_it_processor_architectures.rb +12 -3
  37. data/db/migrate/20130831130259_create_kirgudu_refs_national_currencies.rb +14 -6
  38. data/db/migrate/20130831130350_create_kirgudu_refs_national_languages.rb +11 -4
  39. data/db/migrate/20130831130436_create_kirgudu_refs_shops_manufacturers.rb +18 -6
  40. data/db/migrate/20140111155321_create_kirgudu_refs_it_website_types.rb +32 -0
  41. data/db/migrate/20140111155332_create_kirgudu_refs_it_hosting_types.rb +34 -0
  42. data/db/migrate/20140113072335_create_kirgudu_refs_it_top_level_domains.rb +36 -0
  43. data/db/migrate/20140215071954_create_kirgudu_refs_finances_banks.rb +60 -0
  44. data/test/dummy/config/application.rb +1 -1
  45. data/test/dummy/db/development.sqlite3 +0 -0
  46. data/test/dummy/db/schema.rb +551 -0
  47. data/test/dummy/log/development.log +285 -0
  48. data/test/fixtures/kirgudu_refs/finances/banks.yml +7 -0
  49. data/test/fixtures/kirgudu_refs/it/top_level_domains.yml +11 -0
  50. data/test/models/kirgudu_refs/finances/bank_test.rb +9 -0
  51. data/test/models/kirgudu_refs/it/top_level_domain_test.rb +9 -0
  52. metadata +37 -27
  53. data/db/migrate/20130902065049_fix_id_in_it_operating_system_families.rb +0 -9
  54. data/db/migrate/20130902065101_fix_id_in_it_encodings.rb +0 -9
  55. data/db/migrate/20130902065111_fix_id_in_globe_cities.rb +0 -10
  56. data/db/migrate/20130902065117_fix_id_in_globe_countries.rb +0 -9
  57. data/db/migrate/20130902065123_fix_id_in_globe_states.rb +0 -9
  58. data/db/migrate/20130902065131_fix_id_in_globe_regions.rb +0 -9
  59. data/db/migrate/20130902065943_fix_id_in_globe_subway_lines.rb +0 -9
  60. data/db/migrate/20130902065951_fix_id_in_globe_subway_stations.rb +0 -9
  61. data/db/migrate/20130902070323_fix_id_in_globe_timezones.rb +0 -9
  62. data/db/migrate/20130902070557_fix_id_in_national_currency.rb +0 -9
  63. data/db/migrate/20130902070604_fix_id_in_national_language.rb +0 -9
  64. data/db/migrate/20130902070628_fix_id_in_it_operating_system.rb +0 -9
  65. data/db/migrate/20130902070640_fix_id_in_it_processor_architecture.rb +0 -9
  66. data/db/migrate/20130902070659_fix_id_in_shops_manufacturer.rb +0 -9
@@ -1,43 +1,46 @@
1
1
  module KirguduRefs
2
- class It::Encoding < ::KirguduRefs::BaseModel
3
- attr_accessible :charset, :slug, :name, :description
2
+ module It
3
+ class Encoding < ::KirguduRefs::BaseModel
4
+ #attr_accessible :charset, :slug, :name, :description
4
5
 
5
- ###################################### RELATIONS ###################################
6
+ ###################################### RELATIONS ###################################
6
7
 
7
- include ::KirguduRefs::ModelBasicProperties::CreatorID
8
- include ::KirguduRefs::ModelBasicProperties::UpdaterID
8
+ include ::KirguduBase::Models::BasicProperties::Portal
9
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
10
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
9
11
 
10
- ######################################### VALIDATIONS ###################################
12
+ ######################################### VALIDATIONS ###################################
11
13
 
12
- validates_presence_of :name, :charset, :slug
13
- validates_uniqueness_of :name, :charset, :slug
14
- validate_as_seo_tag :slug
14
+ validates_presence_of :name, :charset, :slug
15
+ validates_uniqueness_of :name, :charset, :slug, scope: :portal_id
15
16
 
17
+ validates_length_of :name, maximum: 128, allow_blank: true
18
+ validates_length_of :slug, maximum: 128, allow_blank: true
19
+ validate_as_seo_tag :slug, allow_nil: true
16
20
 
17
21
 
18
- ############################################### SCOPES #######################################
22
+ ############################################### SCOPES #######################################
19
23
 
20
- include ::KirguduBase::Models::Scopes::WithName
21
- scope :with_encoding, lambda { |value| where(encoding: value) if value }
22
24
 
23
- scope :with_keyword, lambda { |value|
24
- if value
25
- value = value.gsub('%', ' ').strip
26
- like_value ="%#{value}%"
27
- where { (name.like like_value) | (encoding.like like_value) }
28
- end
29
- }
25
+ scope :with_encoding, lambda { |value| where(encoding: value) if value }
30
26
 
31
- def self.apply_filters_to_query(query, filters = {})
32
- filters ||= {}
27
+ scope :with_keyword, lambda { |value|
28
+ if value
29
+ value = value.gsub('%', ' ').strip
30
+ like_value ="%#{value}%"
31
+ where { (name.like like_value) | (encoding.like like_value) }
32
+ end
33
+ }
33
34
 
34
- query = query
35
- .with_name(filters[:name])
36
- .with_keyword(filters[:keyword])
37
- .with_encoding(filters[:encoding])
35
+ def self.apply_filters_to_query(query, filters = {})
36
+ filters ||= {}
38
37
 
39
- super(query, filters)
40
- end
38
+ query = query
39
+ .with_encoding(filters[:encoding])
41
40
 
41
+ super(query, filters)
42
+ end
43
+
44
+ end
42
45
  end
43
- end
46
+ end
@@ -0,0 +1,50 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module KirguduRefs
4
+ module It
5
+ class HostingType < ::KirguduRefs::BaseModel
6
+
7
+ ########################################## RELATIONS ########################################
8
+
9
+ include ::KirguduBase::Models::BasicProperties::Portal
10
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
11
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
12
+
13
+ ########################################## VALIDATIONS #######################################
14
+
15
+ validates_presence_of :name, :slug
16
+ validates_uniqueness_of :name, :slug, scope: :portal_id, case_sensitive: false
17
+
18
+ validates_length_of :name, maximum: 128, allow_blank: true
19
+ validates_length_of :slug, maximum: 128, allow_blank: true
20
+ validate_as_seo_tag :slug, allow_nil: true
21
+
22
+ validates_length_of :meta_keywords, maximum: 200, allow_blank: true
23
+ validates_length_of :meta_description, maximum: 200, allow_blank: true
24
+
25
+
26
+ ############################################### SCOPES #######################################
27
+
28
+ include ::KirguduBase::Models::Scopes::WithName
29
+ include ::KirguduBase::Models::Scopes::WithSlug
30
+
31
+ scope :with_keyword, lambda { |value|
32
+ if value
33
+ value = value.gsub('%', ' ').strip
34
+ like_value ="%#{value}%"
35
+ where { (name.like like_value) | (slug.like like_value) }
36
+ end
37
+ }
38
+
39
+
40
+ def self.apply_filters_to_query(query, filters={})
41
+ filters ||= {}
42
+
43
+ #raise "Filters In Hosting Type: #{filters}"
44
+
45
+ super(query, filters)
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -1,40 +1,50 @@
1
1
  module KirguduRefs
2
- class It::OperatingSystem < ::KirguduRefs::BaseModel
3
- attr_accessible :name, :operating_system_family_id, :processor_architecture_id, :slug, :description, :manufacturer_id
2
+ module It
3
+ class OperatingSystem < ::KirguduRefs::BaseModel
4
4
 
5
+ ########################################## RELATIONS ########################################
5
6
 
6
- has_paper_trail
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
7
10
 
8
- validates_presence_of :name, :slug
9
- validates_uniqueness_of :name, case_sensitive: false
10
- validate_as_seo_tag :slug
11
+ include ::KirguduRefs::ModelBasicProperties::ProcessorArchitectureID
12
+ include ::KirguduRefs::ModelBasicProperties::OperatingSystemFamilyID
11
13
 
14
+ ########################################## VALIDATIONS #######################################
12
15
 
16
+ validates_presence_of :name, :slug, :operating_system_family_id, :processor_architecture_id
17
+ validates_uniqueness_of :name, :slug, case_sensitive: false, scope: :portal_id
13
18
 
14
- ############################################### SCOPES #######################################
19
+ validates_length_of :name, maximum: 128, allow_blank: true
20
+ validates_length_of :slug, maximum: 128, allow_blank: true
21
+ validate_as_seo_tag :slug, allow_nil: true
15
22
 
16
- include ::KirguduBase::Models::Scopes::WithName
17
- include ::KirguduBase::Models::Scopes::WithSeoTag
23
+ ######################################### SCOPES #############################################
18
24
 
25
+ include ::KirguduBase::Models::Scopes::WithName
26
+ include ::KirguduBase::Models::Scopes::WithSlug
19
27
 
20
- scope :with_keyword, lambda { |value|
21
- if value
22
- value = value.gsub('%', ' ').strip
23
- like_value ="%#{value}%"
24
- where { (name.like like_value) | (seo_tag.like like_value) }
25
- end
26
- }
28
+ scope :with_keyword, lambda { |value|
29
+ if value
30
+ value = value.gsub('%', ' ').strip
31
+ like_value ="%#{value}%"
32
+ where { (name.like like_value) | (slug.like like_value) }
33
+ end
34
+ }
27
35
 
28
36
 
29
- def self.apply_filters_to_query(query, filters={})
30
- filters ||= {}
37
+ def self.apply_filters_to_query(query, filters={})
38
+ filters ||= {}
31
39
 
32
- query = query
33
- .with_keyword(filters[:keyword])
34
- .with_name(filters[:name])
40
+ #raise "Operating System Query Filters: #{filters}"
41
+ query = query
42
+ .by_processor_architecture(filters[:processor_architecture_id])
43
+ .by_operating_system_family(filters[:operating_system_family_id])
35
44
 
36
- super(query, filters)
37
- end
45
+ super(query, filters)
46
+ end
38
47
 
48
+ end
39
49
  end
40
- end
50
+ end
@@ -1,7 +1,58 @@
1
1
  module KirguduRefs
2
- class It::OperatingSystemFamily < ::KirguduRefs::BaseModel
3
- attr_accessible :manufacturer_id, :name, :slug
2
+ module It
3
+ class OperatingSystemFamily < ::KirguduRefs::BaseModel
4
4
 
5
- validate_as_seo_tag :slug
5
+ ########################################## RELATIONS ########################################
6
+
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
10
+
11
+ include ::KirguduRefs::ModelBasicProperties::ManufacturerID
12
+
13
+ ########################################## VALIDATIONS #######################################
14
+
15
+ validates_presence_of :name, :slug
16
+ validates_uniqueness_of :name, :slug, scope: :portal_id
17
+
18
+ validates_length_of :name, maximum: 128, allow_blank: true
19
+ validates_length_of :slug, maximum: 128, allow_blank: true
20
+ validate_as_seo_tag :slug, allow_nil: true
21
+
22
+ ######################################### SCOPES #############################################
23
+
24
+ include ::KirguduBase::Models::Scopes::WithName
25
+ include ::KirguduBase::Models::Scopes::WithSlug
26
+
27
+ scope :with_keyword, lambda { |value|
28
+ if value
29
+ value = value.gsub('%', ' ').strip
30
+ like_value ="%#{value}%"
31
+ where { (name.like like_value) | (slug.like like_value) }
32
+ end
33
+ }
34
+
35
+ scope :with_manufacturer_name, lambda { |value|
36
+ if value
37
+ value = value.gsub('%', ' ').strip
38
+ like_value ="%#{value}%"
39
+ where { (manufacturer.name.like like_value) }
40
+ end
41
+ }
42
+
43
+ def self.apply_filters_to_query(query, filters={})
44
+ filters ||= {}
45
+
46
+ filters[:order] = "#{::KirguduRefs::It::OperatingSystemFamily.table_name}.name asc"
47
+
48
+ query = query.includes(:manufacturer)
49
+ .by_manufacturer(filters[:manufacturer_id])
50
+ .with_manufacturer_name(filters[:manufacturer_name])
51
+
52
+ super(query, filters)
53
+ end
54
+
55
+
56
+ end
6
57
  end
7
- end
58
+ end
@@ -1,7 +1,34 @@
1
1
  module KirguduRefs
2
- class It::ProcessorArchitecture < ::KirguduRefs::BaseModel
3
- attr_accessible :name
2
+ module It
3
+ class ProcessorArchitecture < ::KirguduRefs::BaseModel
4
4
 
5
- validate_as_seo_tag :slug
6
- end
7
- end
5
+ ########################################## RELATIONS ########################################
6
+
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
10
+
11
+ ########################################## VALIDATIONS #######################################
12
+
13
+ validates_presence_of :name, :slug
14
+ validates_uniqueness_of :name, :slug, scope: :portal_id
15
+
16
+ validates_length_of :name, maximum: 128, allow_blank: true
17
+ validates_length_of :slug, maximum: 128, allow_blank: true
18
+ validate_as_seo_tag :slug, allow_nil: true
19
+
20
+ ######################################### SCOPES #############################################
21
+
22
+ include ::KirguduBase::Models::Scopes::WithName
23
+ include ::KirguduBase::Models::Scopes::WithSlug
24
+
25
+ scope :with_keyword, lambda { |value|
26
+ if value
27
+ value = value.gsub('%', ' ').strip
28
+ like_value ="%#{value}%"
29
+ where { (name.like like_value) | (slug.like like_value) }
30
+ end
31
+ }
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,26 @@
1
+ module KirguduRefs
2
+ module It
3
+ class TopLevelDomain < ::KirguduRefs::BaseModel
4
+
5
+ ########################################## RELATIONS ########################################
6
+
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
10
+
11
+ ########################################## VALIDATIONS #######################################
12
+ validates_presence_of :name, :slug, :domain_name
13
+ validates_uniqueness_of :name, :slug, :domain_name, scope: :portal_id, case_sensitive: false
14
+
15
+ validates_length_of :name, maximum: 128, allow_blank: true
16
+ validates_length_of :slug, maximum: 128, allow_blank: true
17
+ validates_length_of :domain_name, maximum: 128, allow_blank: true
18
+ validate_as_seo_tag :slug, allow_nil: true
19
+
20
+ validates_length_of :meta_keywords, maximum: 200, allow_blank: true
21
+ validates_length_of :meta_description, maximum: 200, allow_blank: true
22
+
23
+ ######################################### SCOPES #############################################
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,49 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ module KirguduRefs
4
+ module It
5
+ class WebsiteType < ::KirguduRefs::BaseModel
6
+
7
+ ########################################## RELATIONS ########################################
8
+
9
+ include ::KirguduBase::Models::BasicProperties::Portal
10
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
11
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
12
+
13
+ ########################################## VALIDATIONS #######################################
14
+ validates_presence_of :name, :slug
15
+ validates_uniqueness_of :name, :slug, case_sensitive: false, scope: :portal_id
16
+
17
+ validates_length_of :name, maximum: 128, allow_blank: true
18
+ validates_length_of :slug, maximum: 128, allow_blank: true
19
+ validate_as_seo_tag :slug, allow_nil: true
20
+
21
+ validates_length_of :meta_keywords, maximum: 200, allow_blank: true
22
+ validates_length_of :meta_description, maximum: 200, allow_blank: true
23
+
24
+ ######################################### SCOPES #############################################
25
+
26
+ include ::KirguduBase::Models::Scopes::WithName
27
+ include ::KirguduBase::Models::Scopes::WithSlug
28
+
29
+
30
+ scope :with_keyword, lambda { |value|
31
+ if value
32
+ value = value.gsub('%', ' ').strip
33
+ like_value ="%#{value}%"
34
+ where { (name.like like_value) | (slug.like like_value) }
35
+ end
36
+ }
37
+
38
+ def self.apply_filters_to_query(query, filters={})
39
+ filters ||= {}
40
+
41
+ super(query, filters)
42
+ end
43
+
44
+ ################################ METHODS ##########################
45
+
46
+
47
+ end
48
+ end
49
+ end
@@ -1,74 +1,81 @@
1
1
  module KirguduRefs
2
- class National::Currency < ::KirguduRefs::BaseModel
3
- attr_accessible :iso3, :decimal_point, :name, :digital_code, :slug, :symbol_left, :symbol_right, :thousands_delimiter, :decimal_places, :image_id, :meta_keywords, :meta_description, :description
2
+ module National
3
+ class Currency < ::KirguduRefs::BaseModel
4
4
 
5
- before_validation :normalize_values
5
+ ########################################## RELATIONS ########################################
6
6
 
7
- ########################################## VALIDATIONS ########################################
7
+ include ::KirguduBase::Models::BasicProperties::Portal
8
+ include ::KirguduBase::Models::BasicProperties::CreatedBy
9
+ include ::KirguduBase::Models::BasicProperties::UpdatedBy
8
10
 
9
- validates_presence_of :name, :iso3
10
- validates_uniqueness_of :name, :iso3, case_sensitive: false
11
- validates_uniqueness_of :digital_code, case_sensitive: false, allow_nil: true
12
- validates_uniqueness_of :slug, case_sensitive: false, allow_nil: true
11
+ ########################################## VALIDATIONS ########################################
13
12
 
14
- validate_as_seo_tag :slug
13
+ validates_presence_of :name, :iso3
14
+ validates_uniqueness_of :name, :iso3, case_sensitive: false
15
+ validates_uniqueness_of :digital_code, case_sensitive: false, allow_nil: true
16
+ validates_uniqueness_of :slug, case_sensitive: false
15
17
 
18
+ validates_length_of :name, maximum: 128, allow_blank: true
19
+ validates_length_of :slug, maximum: 128, allow_blank: true
20
+ validates_length_of :iso3, is: 3, allow_blank: true
21
+ validates_length_of :decimal_point, is: 1, allow_blank: true
16
22
 
23
+ validates_length_of :symbol_left, maximum: 10, allow_blank: true
24
+ validates_length_of :symbol_right, maximum: 10, allow_blank: true
25
+ validates_length_of :thousands_delimiter, maximum: 3, allow_blank: true
17
26
 
27
+ validates_length_of :meta_keywords, maximum: 200, allow_blank: true
28
+ validates_length_of :meta_description, maximum: 200, allow_blank: true
18
29
 
19
- ########################################## SCOPES ########################################
30
+ validate_as_seo_tag :slug, allow_nil: true
20
31
 
21
32
 
22
- scope :with_keyword, lambda { |value|
23
- if value
24
- value = value.gsub('%', ' ').strip
25
- like_value ="%#{value}%"
26
- where { (name.like like_value) | (iso3.like like_value) | (seo_tag.like like_value) }
27
- end
28
- }
33
+ ########################################## SCOPES ########################################
29
34
 
30
- scope :with_name, lambda { |value|
31
- if value
32
- value = value.gsub('%', ' ').strip
33
- like_value ="%#{value}%"
34
- where { (name.like like_value) }
35
- end
36
- }
35
+ include ::KirguduBase::Models::Scopes::WithName
36
+ include ::KirguduBase::Models::Scopes::WithSlug
37
37
 
38
- scope :with_slug, lambda { |value|
39
- if value
40
- value = value.gsub('%', ' ').strip
41
- like_value ="%#{value}%"
42
- where { (seo_tag.like like_value) }
43
- end
44
- }
45
38
 
46
- scope :with_iso3, lambda { |value|
47
- if value
48
- value = value.gsub('%', ' ').strip
49
- like_value ="%#{value}%"
50
- where { (iso3.like like_value) }
51
- end
52
- }
53
- scope :with_digit_code, lambda { |value| where(digit_code: value) if value }
39
+ scope :with_keyword, lambda { |value|
40
+ if value
41
+ value = value.gsub('%', ' ').strip
42
+ like_value ="%#{value}%"
43
+ where { (name.like like_value) | (iso3.like like_value) | (slug.like like_value) }
44
+ end
45
+ }
54
46
 
55
47
 
56
- def self.apply_filters_to_query(query, filters={})
57
- filters ||={}
48
+ scope :with_iso3, lambda { |value|
49
+ if value
50
+ value = value.gsub('%', ' ').strip
51
+ like_value ="%#{value}%"
52
+ where { (iso3.like like_value) }
53
+ end
54
+ }
58
55
 
59
- query = query
60
- .with_keyword(filters[:keyword])
61
- .with_slug(filters[:seo_tag])
62
- .with_iso3(filters[:iso3])
63
- .with_digit_code(filters[:digit_code])
56
+ scope :with_digital_code, lambda { |value| where(digital_code: value) if value }
64
57
 
65
- super(query, filters)
66
- end
67
58
 
59
+ def self.apply_filters_to_query(query, filters={})
60
+ filters ||={}
61
+
62
+ query = query
63
+ .with_iso3(filters[:iso3])
64
+ .with_digital_code(filters[:digital_code])
68
65
 
69
- private
70
- def normalize_values
71
- iso3.upcase!
66
+ super(query, filters)
67
+ end
68
+
69
+
70
+ private
71
+ def normalize_values_before_validation
72
+ self.iso3.upcase! if self.iso3
73
+ self.iso3.strip! if self.iso3
74
+ self.symbol_left.strip! if self.symbol_left
75
+ self.symbol_right.strip! if self.symbol_right
76
+
77
+ super
78
+ end
72
79
  end
73
80
  end
74
- end
81
+ end