udise_school_report_reader 0.1.3 → 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- 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
|