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 +4 -4
- data/CHANGELOG.md +6 -0
- data/lib/udise_school_report_reader/basic_info_data_reader.rb +22 -21
- data/lib/udise_school_report_reader/data_reader_base.rb +2 -1
- data/lib/udise_school_report_reader/digital_facilities_data_reader.rb +2 -1
- data/lib/udise_school_report_reader/school_report_parser.rb +5 -1
- data/lib/udise_school_report_reader/teacher_data_reader.rb +2 -1
- data/lib/udise_school_report_reader/version.rb +1 -1
- data/lib/udise_school_report_reader.rb +4 -1
- metadata +1 -2
- data/lib/udise_school_report_reader/template_helper.rb +0 -7
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7edd71a0882c1626399ef5a1b65d194dba8659a9cc1a99d5e37a88c5d635555a
|
|
4
|
+
data.tar.gz: eb6694db38501a179c96a2ef51af0395135da4cc5df3dcd300cc7842b0992e96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 06110740cf3340b4949e48af667b8c2d62d98670849017fb2da682d61494f7df76c2980bdca3562b7966d31667ce72ade4d59d3655cdf257e34ef327914d369a
|
|
7
|
+
data.tar.gz: e82e368f1ecc36c72ca94804c260a63f398c2c8c93600b39bfe22304eb7e6848ac78c98c63809d74d276a3f73b29977b3a29122917f06a836c9cd3e85d12f40e
|
data/CHANGELOG.md
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
-
|
|
7
|
-
|
|
8
|
+
lines.each_with_index do |line, i|
|
|
9
|
+
next_line = lines[i + 1]&.strip
|
|
8
10
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
+
# Clean up empty sections
|
|
26
|
+
data['basic_info'].reject! { |_, v| v.nil? || (v.is_a?(Hash) && v.empty?) }
|
|
25
27
|
|
|
26
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
-
|
|
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,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.
|
|
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
|