ox-tender-abstract 0.9.0 → 0.9.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 58a9c85f1426551f623a0ba55164674520905899edbb07701f7f07a5e36a335e
4
- data.tar.gz: b0c32af0c97883f9944a1ce6540de74ecc7ec7a87793a7522c7575f208cd27ce
3
+ metadata.gz: 2dfb0556afbbe98cebec1fbb413fbe4408d5258e6fbd79d090c99df94dc718d6
4
+ data.tar.gz: 7d3308d579e05d7c651848f2cd2d1459562ab85d9f3991c2ef4784637803df99
5
5
  SHA512:
6
- metadata.gz: 9e128985422831b7e9b41a0ea0c356829939838aa0be5213cb28901fc930a967210abcecc6b0eacc1f07d66ce4fa75b8517cc5ff4fbd917c6480772034947af6
7
- data.tar.gz: e5f06cd44095becd3f8ad558c5d2c4903304d65ab2efed8dc18bc95eeb9c3b3bf960abb35b8fb097d1b75543554c84a03e75b48b96e7cfc55a8b9613344e6f4c
6
+ metadata.gz: aa20e0eeebbdebebc3cba7c36112db12a8bbc63bffffe9d6ce79f762520a9f28be0afc587fb47f22e9358facf118e6e80093fbe1b9a9387c356fecc43efcaacf
7
+ data.tar.gz: 3437061cb5eaa5c84de842c4d57056ef3fa5d080a0f972708db210c48081a807faa866aeb4b9296d759c4855b4c95c4b541f22ba4be924def0ce64a8afea1348
data/.rspec_status CHANGED
@@ -54,8 +54,9 @@ example_id | status | run_time
54
54
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:3:1] | failed | 0.00122 seconds |
55
55
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:3:2] | passed | 0.00162 seconds |
56
56
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:3:3] | failed | 0.00097 seconds |
57
- ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:4:1] | passed | 0.00141 seconds |
58
- ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:4:2] | passed | 0.00078 seconds |
57
+ ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:4:1] | passed | 0.00336 seconds |
58
+ ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:4:2] | passed | 0.00176 seconds |
59
+ ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:4:3] | passed | 0.0009 seconds |
59
60
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:5:1] | passed | 0.00012 seconds |
60
61
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:6:1] | passed | 0.00008 seconds |
61
62
  ./spec/oxtenderabstract/xml_parser_spec.rb[1:1:7:1] | passed | 0.00008 seconds |
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OxTenderAbstract
4
- VERSION = '0.9.0'
4
+ VERSION = '0.9.1'
5
5
  end
@@ -593,9 +593,56 @@ module OxTenderAbstract
593
593
  }
594
594
  end
595
595
 
596
+ # Determine the actual product name from available sources
597
+ # Priority: KTRU name > OKPD2 name > name field
598
+ product_name = nil
599
+ product_name = if object_data[:ktru] && object_data[:ktru][:name] && !object_data[:ktru][:name].empty?
600
+ object_data[:ktru][:name]
601
+ elsif object_data[:okpd2] && object_data[:okpd2][:name] && !object_data[:okpd2][:name].empty?
602
+ object_data[:okpd2][:name]
603
+ else
604
+ object_data[:name]
605
+ end
606
+
607
+ object_data[:product_name] = product_name
608
+
609
+ # Add field description indicating what the 'name' field actually contains
610
+ object_data[:name_type] = determine_name_type(object_data[:name])
611
+
596
612
  object_data.compact
597
613
  end
598
614
 
615
+ private
616
+
617
+ def determine_name_type(name)
618
+ return nil unless name
619
+
620
+ # Common patterns that indicate this is a characteristic, not a product name
621
+ characteristic_patterns = [
622
+ /соответствие\s+требованиям/i,
623
+ /минимальный\s+.*срок/i,
624
+ /количество\s+/i,
625
+ /размер\s+/i,
626
+ /объем\s+/i,
627
+ /вес\s+/i,
628
+ /цвет\s+/i,
629
+ /материал\s+/i,
630
+ /тип\s+/i,
631
+ /класс\s+/i,
632
+ /группа\s+/i,
633
+ /категория\s+/i,
634
+ /способ\s+/i,
635
+ /метод\s+/i,
636
+ /технология\s+/i
637
+ ]
638
+
639
+ if characteristic_patterns.any? { |pattern| name.match?(pattern) }
640
+ 'characteristic'
641
+ else
642
+ 'product_name'
643
+ end
644
+ end
645
+
599
646
  def extract_guarantee_info(doc, namespaces)
600
647
  {
601
648
  contract_guarantee_part: find_text_with_namespaces(doc, [
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ox-tender-abstract
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - smolev