udise_school_report_reader 0.1.3 → 0.1.4

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: e39aba1eab8611f039048c1ca160fb7b3febb0686e33a2b6a7bb5ac2ae25854e
4
- data.tar.gz: 4269a9386a088430c3b7255e3569c5943425f57e0b00383ff91ebc83db5b55b0
3
+ metadata.gz: 7edd71a0882c1626399ef5a1b65d194dba8659a9cc1a99d5e37a88c5d635555a
4
+ data.tar.gz: eb6694db38501a179c96a2ef51af0395135da4cc5df3dcd300cc7842b0992e96
5
5
  SHA512:
6
- metadata.gz: 045cab095664a9164182cdafec0eeb803894f6d67bd653a2ee2ac5a38521158e956041c19ef125f0bf7d14be73b7567673ae4759b251733b0b6b814be58e0669
7
- data.tar.gz: db3a671cea700c813466095c9faa25f864910f6b5b8d2d70c8b09e5b94264af34073784e44c9ef1a5c161aea1df24b0bba1f391634cc93375862a20dd5ba7608
6
+ metadata.gz: 06110740cf3340b4949e48af667b8c2d62d98670849017fb2da682d61494f7df76c2980bdca3562b7966d31667ce72ade4d59d3655cdf257e34ef327914d369a
7
+ data.tar.gz: e82e368f1ecc36c72ca94804c260a63f398c2c8c93600b39bfe22304eb7e6848ac78c98c63809d74d276a3f73b29977b3a29122917f06a836c9cd3e85d12f40e
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.1.4] - 2024-01-24
4
+
5
+ ### Fixed
6
+ - Fixed template.yml path resolution using ROOT_PATH constant
7
+ - Gem now works correctly when run from any directory
8
+
3
9
  ## [0.1.0] - 2024-01-01
4
10
 
5
11
  ### Added
@@ -1,29 +1,30 @@
1
- module UdiseSchoolReportReader
2
- class BasicInfoDataReader
3
- def self.read(lines)
4
- data = YAML.load_file(TemplateHelper.template_path)
1
+ class BasicInfoDataReader
2
+ def self.read(lines)
3
+ require 'yaml'
4
+ template_path = File.join(UdiseSchoolReportReader::ROOT_PATH, 'template.yml')
5
+ template = YAML.load_file(template_path)
6
+ data = { 'basic_info' => template['basic_info'] }
5
7
 
6
- lines.each_with_index do |line, i|
7
- next_line = lines[i + 1]&.strip
8
+ lines.each_with_index do |line, i|
9
+ next_line = lines[i + 1]&.strip
8
10
 
9
- case line
10
- when "UDISE CODE"
11
- if next_line && (match = next_line.match(/(\d{2})\s*(\d{2})\s*(\d{2})\s*(\d{2})\s*(\d{3})/))
12
- data['basic_info']['udise_code'] = match[1..5].join('')
13
- end
14
- when "School Name"
15
- if next_line && next_line.include?("CARMEL")
16
- data['basic_info']['name'] = next_line
17
- end
18
- when /Academic Year.*:\s*(\d{4}-\d{2})/
19
- data['basic_info']['academic_year'] = $1
11
+ case line
12
+ when "UDISE CODE"
13
+ if next_line && (match = next_line.match(/(\d{2})\s*(\d{2})\s*(\d{2})\s*(\d{2})\s*(\d{3})/))
14
+ data['basic_info']['udise_code'] = match[1..5].join('')
20
15
  end
16
+ when "School Name"
17
+ if next_line && next_line.include?("CARMEL")
18
+ data['basic_info']['name'] = next_line
19
+ end
20
+ when /Academic Year.*:\s*(\d{4}-\d{2})/
21
+ data['basic_info']['academic_year'] = $1
21
22
  end
23
+ end
22
24
 
23
- # Clean up empty sections
24
- data['basic_info'].reject! { |_, v| v.nil? || (v.is_a?(Hash) && v.empty?) }
25
+ # Clean up empty sections
26
+ data['basic_info'].reject! { |_, v| v.nil? || (v.is_a?(Hash) && v.empty?) }
25
27
 
26
- data
27
- end
28
+ data
28
29
  end
29
30
  end
@@ -6,7 +6,8 @@ module DataReaderBase
6
6
  module ClassMethods
7
7
  def read(lines)
8
8
  require 'yaml'
9
- template = YAML.load_file('template.yml')
9
+ template_path = File.join(UdiseSchoolReportReader::ROOT_PATH, 'template.yml')
10
+ template = YAML.load_file(template_path)
10
11
  data = { base_key => template[base_key] }
11
12
 
12
13
  lines.each_with_index do |line, i|
@@ -1,6 +1,7 @@
1
1
  class DigitalFacilitiesDataReader
2
2
  def self.read(lines)
3
- data = { 'digital_facilities' => YAML.load_file('template.yml')['digital_facilities'] }
3
+ template_path = File.join(UdiseSchoolReportReader::ROOT_PATH, 'template.yml')
4
+ data = { 'digital_facilities' => YAML.load_file(template_path)['digital_facilities'] }
4
5
 
5
6
  lines.each_with_index do |line, i|
6
7
  case line
@@ -21,6 +21,10 @@ module UdiseSchoolReportReader
21
21
 
22
22
  private
23
23
 
24
+ def self.template_path
25
+ File.join(UdiseSchoolReportReader::ROOT_PATH, 'template.yml')
26
+ end
27
+
24
28
  def self.extract_data(pdf_path)
25
29
  reader = PDF::Reader.new(pdf_path)
26
30
 
@@ -127,7 +131,7 @@ module UdiseSchoolReportReader
127
131
  lines = compressed_content.split("\n").map { |line| line.strip.gsub(/\\/, '') } # Remove escape characters
128
132
 
129
133
  # Load template as base structure
130
- data = YAML.load_file(TemplateHelper.template_path)
134
+ data = YAML.load_file(template_path)
131
135
 
132
136
  # Extract data using readers
133
137
  basic_info_data = BasicInfoDataReader.read(lines)
@@ -104,7 +104,8 @@ class TeacherDataReader
104
104
 
105
105
  def self.read(lines)
106
106
  require 'yaml'
107
- template = YAML.load_file('template.yml')
107
+ template_path = File.join(UdiseSchoolReportReader::ROOT_PATH, 'template.yml')
108
+ template = YAML.load_file(template_path)
108
109
  data = { 'teachers' => template['teachers'] }
109
110
 
110
111
  # Process base module mappings first
@@ -1,3 +1,3 @@
1
1
  module UdiseSchoolReportReader
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
@@ -1,7 +1,10 @@
1
1
  require "udise_school_report_reader/version"
2
2
 
3
+ module UdiseSchoolReportReader
4
+ ROOT_PATH = File.expand_path('..', __dir__)
5
+ end
6
+
3
7
  # Core functionality
4
- require_relative "udise_school_report_reader/template_helper"
5
8
  require_relative "udise_school_report_reader/pdf_block_extractor"
6
9
  require_relative "udise_school_report_reader/pdf_rectangle_extractor"
7
10
  require_relative "udise_school_report_reader/pdf_content_compressor"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: udise_school_report_reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Syed Fazil Basheer
@@ -134,7 +134,6 @@ files:
134
134
  - lib/udise_school_report_reader/sanitation_data_reader.rb
135
135
  - lib/udise_school_report_reader/school_report_parser.rb
136
136
  - lib/udise_school_report_reader/teacher_data_reader.rb
137
- - lib/udise_school_report_reader/template_helper.rb
138
137
  - lib/udise_school_report_reader/version.rb
139
138
  - template.yml
140
139
  - test/school_report_parser_test.rb
@@ -1,7 +0,0 @@
1
- module UdiseSchoolReportReader
2
- module TemplateHelper
3
- def self.template_path
4
- File.expand_path('../../../template.yml', __FILE__)
5
- end
6
- end
7
- end