[logaling-commit] logaling/logaling-command [master] [#23331325] add list command

Back to archive index

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)




More information about the logaling-commit mailing list
Back to archive index