null+****@clear*****
null+****@clear*****
Wed Jan 25 17:23:51 JST 2012
SUZUKI Miho 2012-01-25 17:23:51 +0900 (Wed, 25 Jan 2012) New Revision: 3c3089d99aa9a076c9c2b066100f00d48a3e33fb Merged 2152f8c: Merge pull request #25 from logaling/improve-list-command Log: [#23331325] add list command Modified files: lib/logaling/command.rb lib/logaling/glossary_db.rb lib/logaling/repository.rb Modified: lib/logaling/command.rb (+18 -1) =================================================================== --- lib/logaling/command.rb 2012-01-25 15:38:51 +0900 (8cb9f4e) +++ lib/logaling/command.rb 2012-01-25 17:23:51 +0900 (b32025b) @@ -218,7 +218,24 @@ class Logaling::Command < Thor "glossary <#{config['glossary']}> not found" end - rescue Logaling::CommandFailed, Logaling::TermError => e + rescue Logaling::CommandFailed, Logaling::GlossaryDBNotFound => e + say e.message + end + + desc 'list', 'Show glossary list.' + def list + run_pager + repository.index + glossaries = repository.list + unless glossaries.empty? + glossaries.each do |glossary| + printf(" %s\n", glossary) + end + else + "There is no registered glossary." + end + + rescue Logaling::CommandFailed, Logaling::GlossaryDBNotFound => e say e.message end Modified: lib/logaling/glossary_db.rb (+9 -5) =================================================================== --- lib/logaling/glossary_db.rb 2012-01-25 15:38:51 +0900 (af95d68) +++ lib/logaling/glossary_db.rb 2012-01-25 17:23:51 +0900 (c641b8b) @@ -197,12 +197,16 @@ module Logaling !glossary.size.zero? end + def get_all_glossary_source + Groonga["glossary_sources"].sort([ + {:key=>"_key", :order=>'ascending'} + ]).map{|record| record.key} + end + def get_all_glossary - glossaries = [] - Groonga["glossary_sources"].each do |record| - glossaries << record.key - end - glossaries + Groonga["glossaries"].sort([ + {:key=>"_key", :order=>'ascending'} + ]).map{|record| record.key} end private Modified: lib/logaling/repository.rb (+11 -1) =================================================================== --- lib/logaling/repository.rb 2012-01-25 15:38:51 +0900 (2327b10) +++ lib/logaling/repository.rb 2012-01-25 17:23:51 +0900 (927f916) @@ -70,6 +70,16 @@ module Logaling terms end + def list + raise GlossaryDBNotFound unless File.exist?(logaling_db_home) + + glossaries = [] + Logaling::GlossaryDB.open(logaling_db_home, "utf8") do |db| + glossaries = db.get_all_glossary + end + glossaries + end + def index project_glossaries = Dir[File.join(@path, "projects", "*")].map do |project| Dir.glob(get_all_glossary_sources(File.join(project, "glossary"))) @@ -87,7 +97,7 @@ module Logaling db.index_glossary(Glossary.load(glossary_source), glossary_name, glossary_source, source_language, target_language, indexed_at) end end - (db.get_all_glossary - all_glossaries).each do |glossary_source| + (db.get_all_glossary_source - all_glossaries).each do |glossary_source| glossary_name, source_language, target_language = get_glossary(glossary_source) puts "now deindex #{glossary_name}..." db.deindex_glossary(glossary_name, glossary_source)