Class: Stepmod::Utils::TermsExtractor
- Inherits:
-
Object
- Object
- Stepmod::Utils::TermsExtractor
- Defined in:
- lib/stepmod/utils/terms_extractor.rb
Constant Summary collapse
- ACCEPTED_STAGES =
TODO: we may want a command line option to override this in the future
%w(IS DIS FDIS TS).freeze
- WITHDRAWN_STATUS =
"withdrawn".freeze
Instance Attribute Summary collapse
-
#encountered_terms ⇒ Object
readonly
Returns the value of attribute encountered_terms.
-
#general_concepts ⇒ Object
readonly
Returns the value of attribute general_concepts.
-
#git_rev ⇒ Object
readonly
Returns the value of attribute git_rev.
-
#index_path ⇒ Object
readonly
Returns the value of attribute index_path.
-
#parsed_bibliography ⇒ Object
readonly
Returns the value of attribute parsed_bibliography.
-
#part_concepts ⇒ Object
readonly
Returns the value of attribute part_concepts.
-
#part_modules ⇒ Object
readonly
Returns the value of attribute part_modules.
-
#part_resources ⇒ Object
readonly
Returns the value of attribute part_resources.
-
#resource_concepts ⇒ Object
readonly
Returns the value of attribute resource_concepts.
-
#stdout ⇒ Object
readonly
Returns the value of attribute stdout.
-
#stepmod_dir ⇒ Object
readonly
Returns the value of attribute stepmod_dir.
-
#stepmod_path ⇒ Object
readonly
Returns the value of attribute stepmod_path.
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(stepmod_dir, index_path, stdout) ⇒ TermsExtractor
constructor
A new instance of TermsExtractor.
- #log(message) ⇒ Object
- #term_special_category(bibdata) ⇒ Object
Constructor Details
#initialize(stepmod_dir, index_path, stdout) ⇒ TermsExtractor
Returns a new instance of TermsExtractor.
36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 36 def initialize(stepmod_dir, index_path, stdout) @stdout = stdout @stepmod_dir = stepmod_dir @stepmod_path = Pathname.new(stepmod_dir).realpath @index_path = Pathname.new(index_path).to_s @general_concepts = Glossarist::Collection.new @resource_concepts = Glossarist::Collection.new @parsed_bibliography = [] @part_concepts = [] @part_resources = [] @part_modules = [] @encountered_terms = {} end |
Instance Attribute Details
#encountered_terms ⇒ Object (readonly)
Returns the value of attribute encountered_terms.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def encountered_terms @encountered_terms end |
#general_concepts ⇒ Object (readonly)
Returns the value of attribute general_concepts.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def general_concepts @general_concepts end |
#git_rev ⇒ Object (readonly)
Returns the value of attribute git_rev.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def git_rev @git_rev end |
#index_path ⇒ Object (readonly)
Returns the value of attribute index_path.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def index_path @index_path end |
#parsed_bibliography ⇒ Object (readonly)
Returns the value of attribute parsed_bibliography.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def parsed_bibliography @parsed_bibliography end |
#part_concepts ⇒ Object (readonly)
Returns the value of attribute part_concepts.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def part_concepts @part_concepts end |
#part_modules ⇒ Object (readonly)
Returns the value of attribute part_modules.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def part_modules @part_modules end |
#part_resources ⇒ Object (readonly)
Returns the value of attribute part_resources.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def part_resources @part_resources end |
#resource_concepts ⇒ Object (readonly)
Returns the value of attribute resource_concepts.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def resource_concepts @resource_concepts end |
#stdout ⇒ Object (readonly)
Returns the value of attribute stdout.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def stdout @stdout end |
#stepmod_dir ⇒ Object (readonly)
Returns the value of attribute stepmod_dir.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def stepmod_dir @stepmod_dir end |
#stepmod_path ⇒ Object (readonly)
Returns the value of attribute stepmod_path.
19 20 21 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 19 def stepmod_path @stepmod_path end |
Class Method Details
.call(stepmod_dir, index_path, stdout = $stdout) ⇒ Object
32 33 34 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 32 def self.call(stepmod_dir, index_path, stdout = $stdout) new(stepmod_dir, index_path, stdout).call end |
Instance Method Details
#call ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 65 def call log "INFO: STEPmod directory set to #{stepmod_dir}." log "INFO: Detecting paths..." # Run `cvs status` to find out version log "INFO: Detecting Git SHA..." Dir.chdir(stepmod_path) do @git_rev = `git rev-parse HEAD` || nil end repo_index = Nokogiri::XML(File.read(@index_path)).root files = [] # add module paths repo_index.xpath("//module").each do |x| next if x['status'] == WITHDRAWN_STATUS path = Pathname.new("#{stepmod_dir}/modules/#{x['name']}/module.xml") files << path if File.exists? path end # add resource_docs paths repo_index.xpath("//resource_doc").each do |x| next if x['status'] == WITHDRAWN_STATUS path = Pathname.new("#{stepmod_dir}/resource_docs/#{x['name']}/resource.xml") files << path if File.exists? path end # add business_object_models paths repo_index.xpath("//business_object_model").each do |x| next if x['status'] == WITHDRAWN_STATUS path = Pathname.new("#{stepmod_dir}/business_object_models/#{x['name']}/business_object_model.xml") files << path if File.exists? path end # add application_protocols paths repo_index.xpath("//application_protocol").each do |x| next if x['status'] == WITHDRAWN_STATUS path = Pathname.new("#{stepmod_dir}/application_protocols/#{x['name']}/application_protocol.xml") files << path if File.exists? path end files.sort!.uniq! process_term_files(files) [ general_concepts, resource_concepts, parsed_bibliography, part_concepts, part_resources, part_modules, ] end |
#log(message) ⇒ Object
50 51 52 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 50 def log() stdout.puts "[stepmod-utils] #{}" end |
#term_special_category(bibdata) ⇒ Object
54 55 56 57 58 59 60 61 62 63 |
# File 'lib/stepmod/utils/terms_extractor.rb', line 54 def term_special_category(bibdata) case bibdata.part.to_i when 41, 42, 43, 44, 45, 46, 47, 51 true when [56..112] true else false end end |