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 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