milkode 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
 - data/bin/gmilk +1 -1
 - data/bin/milk +1 -1
 - data/lib/milkode/cdstk/cdstk.rb +337 -117
 - data/lib/milkode/cdstk/cli_cdstk.rb +27 -9
 - data/lib/milkode/cdstk/cli_cdstksub.rb +44 -6
 - data/lib/milkode/cdstk/milkode_yaml.rb +105 -0
 - data/lib/milkode/cdstk/package.rb +83 -0
 - data/lib/milkode/cdstk/yaml_file_wrapper.rb +94 -0
 - data/lib/milkode/cdweb/app.rb +6 -28
 - data/lib/milkode/cdweb/lib/database.rb +6 -0
 - data/lib/milkode/cdweb/lib/grep.rb +28 -0
 - data/lib/milkode/cdweb/lib/mkurl.rb +2 -0
 - data/lib/milkode/cdweb/lib/search_contents.rb +49 -10
 - data/lib/milkode/cdweb/views/filelist.haml +2 -6
 - data/lib/milkode/cdweb/views/header_menu.haml +5 -0
 - data/lib/milkode/cdweb/views/search.haml +4 -8
 - data/lib/milkode/cdweb/views/search_form.haml +22 -0
 - data/lib/milkode/cdweb/views/view.haml +2 -6
 - data/lib/milkode/common/ignore_checker.rb +34 -0
 - data/lib/milkode/common/ignore_setting.rb +62 -0
 - data/lib/milkode/grep/cli_grep.rb +10 -9
 - data/milkode.gemspec +18 -5
 - data/test/data/.gitignore +42 -0
 - data/test/data/no_auto_ignore/.gitignore +1 -0
 - data/test/data/no_auto_ignore/a.txt +3 -0
 - data/test/milkode_test_work.rb +2 -2
 - data/test/test_cdstk.rb +17 -12
 - data/test/test_database.rb +4 -4
 - data/test/test_ignore_checker.rb +26 -0
 - data/test/test_ignore_setting.rb +113 -0
 - data/test/test_milkode_yaml.rb +149 -0
 - data/test/test_package.rb +73 -0
 - data/test/test_yaml_file_wrapper.rb +97 -0
 - metadata +19 -6
 - data/lib/milkode/cdstk/cdstk_yaml.rb +0 -140
 - data/test/test_cdstk_yaml.rb +0 -167
 
| 
         @@ -0,0 +1,97 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            #
         
     | 
| 
      
 3 
     | 
    
         
            +
            # @file 
         
     | 
| 
      
 4 
     | 
    
         
            +
            # @brief
         
     | 
| 
      
 5 
     | 
    
         
            +
            # @author ongaeshi
         
     | 
| 
      
 6 
     | 
    
         
            +
            # @date   2011/02/20
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            require 'test_helper'
         
     | 
| 
      
 9 
     | 
    
         
            +
            require 'milkode/cdstk/yaml_file_wrapper.rb'
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'milkode/cdstk/package'
         
     | 
| 
      
 11 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 12 
     | 
    
         
            +
            require 'milkode/common/util'
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            class TestYamlFileWrapper < Test::Unit::TestCase
         
     | 
| 
      
 15 
     | 
    
         
            +
              include Milkode
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 18 
     | 
    
         
            +
                @prev_dir = Dir.pwd
         
     | 
| 
      
 19 
     | 
    
         
            +
                @tmp_dir = Pathname(File.dirname(__FILE__)) + "tmp"
         
     | 
| 
      
 20 
     | 
    
         
            +
                FileUtils.rm_rf(@tmp_dir.to_s)
         
     | 
| 
      
 21 
     | 
    
         
            +
                FileUtils.mkdir_p(@tmp_dir.to_s)
         
     | 
| 
      
 22 
     | 
    
         
            +
                FileUtils.cd(@tmp_dir.to_s)
         
     | 
| 
      
 23 
     | 
    
         
            +
              end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
              def test_basic
         
     | 
| 
      
 26 
     | 
    
         
            +
                # create
         
     | 
| 
      
 27 
     | 
    
         
            +
                yaml = YamlFileWrapper.create
         
     | 
| 
      
 28 
     | 
    
         
            +
                assert_equal yaml.contents, []
         
     | 
| 
      
 29 
     | 
    
         
            +
                assert_equal yaml.version, '0.2'
         
     | 
| 
      
 30 
     | 
    
         
            +
                assert_raise(YamlFileWrapper::YAMLAlreadyExist) { YamlFileWrapper.create }
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                # # load
         
     | 
| 
      
 33 
     | 
    
         
            +
                yaml = YamlFileWrapper.load
         
     | 
| 
      
 34 
     | 
    
         
            +
                assert_equal yaml.contents, []
         
     | 
| 
      
 35 
     | 
    
         
            +
                assert_equal yaml.version, '0.2'
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                # load fail
         
     | 
| 
      
 38 
     | 
    
         
            +
                FileUtils.mkdir 'loadtest'
         
     | 
| 
      
 39 
     | 
    
         
            +
                FileUtils.cd 'loadtest' do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  assert_raise(YamlFileWrapper::YAMLNotExist) { YamlFileWrapper.load }
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
             
     | 
| 
      
 43 
     | 
    
         
            +
                # add
         
     | 
| 
      
 44 
     | 
    
         
            +
                yaml.add(Package.create('/path/to/dir1'))
         
     | 
| 
      
 45 
     | 
    
         
            +
                yaml.add(Package.create('/path/to/dir2'))
         
     | 
| 
      
 46 
     | 
    
         
            +
                yaml.add(Package.create('/path/to/dir3'))
         
     | 
| 
      
 47 
     | 
    
         
            +
                assert_equal ['dir1', 'dir2', 'dir3'], yaml.contents.map{|v| v.name }
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                # remove
         
     | 
| 
      
 50 
     | 
    
         
            +
                yaml.remove(Package.create('/path/to/dir2'))
         
     | 
| 
      
 51 
     | 
    
         
            +
                assert_equal ['dir1', 'dir3'], yaml.contents.map{|v| v.name }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                # update
         
     | 
| 
      
 54 
     | 
    
         
            +
                yaml.update(Package.create('/path/to/dir1', ["*.bak"]))
         
     | 
| 
      
 55 
     | 
    
         
            +
                assert_equal ['*.bak'], yaml.contents[0].ignore
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                # find_name
         
     | 
| 
      
 58 
     | 
    
         
            +
                assert yaml.find_name('dir1')
         
     | 
| 
      
 59 
     | 
    
         
            +
                assert_nil yaml.find_name('dir2')
         
     | 
| 
      
 60 
     | 
    
         
            +
             
     | 
| 
      
 61 
     | 
    
         
            +
                # find_dir
         
     | 
| 
      
 62 
     | 
    
         
            +
                assert yaml.find_dir('/path/to/dir1')
         
     | 
| 
      
 63 
     | 
    
         
            +
                assert_nil yaml.find_dir('/path/to/dir2')
         
     | 
| 
      
 64 
     | 
    
         
            +
             
     | 
| 
      
 65 
     | 
    
         
            +
                # save
         
     | 
| 
      
 66 
     | 
    
         
            +
                yaml.save
         
     | 
| 
      
 67 
     | 
    
         
            +
                r = open('milkode.yaml'){|f|f.read}
         
     | 
| 
      
 68 
     | 
    
         
            +
                assert_equal <<EOF, r if Milkode::Util::ruby19?
         
     | 
| 
      
 69 
     | 
    
         
            +
            ---
         
     | 
| 
      
 70 
     | 
    
         
            +
            version: '0.2'
         
     | 
| 
      
 71 
     | 
    
         
            +
            contents:
         
     | 
| 
      
 72 
     | 
    
         
            +
            - directory: /path/to/dir1
         
     | 
| 
      
 73 
     | 
    
         
            +
              ignore:
         
     | 
| 
      
 74 
     | 
    
         
            +
              - ! '*.bak'
         
     | 
| 
      
 75 
     | 
    
         
            +
            - directory: /path/to/dir3
         
     | 
| 
      
 76 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 77 
     | 
    
         
            +
              end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
              def test_save_otherpath
         
     | 
| 
      
 80 
     | 
    
         
            +
                FileUtils.mkdir 'otherpath'
         
     | 
| 
      
 81 
     | 
    
         
            +
                yaml = YamlFileWrapper.create('otherpath')
         
     | 
| 
      
 82 
     | 
    
         
            +
                yaml.save
         
     | 
| 
      
 83 
     | 
    
         
            +
                
         
     | 
| 
      
 84 
     | 
    
         
            +
                # save
         
     | 
| 
      
 85 
     | 
    
         
            +
                r = open('otherpath/milkode.yaml'){|f|f.read}
         
     | 
| 
      
 86 
     | 
    
         
            +
                assert_equal <<EOF, r if Milkode::Util::ruby19?
         
     | 
| 
      
 87 
     | 
    
         
            +
            ---
         
     | 
| 
      
 88 
     | 
    
         
            +
            version: '0.2'
         
     | 
| 
      
 89 
     | 
    
         
            +
            contents: []
         
     | 
| 
      
 90 
     | 
    
         
            +
            EOF
         
     | 
| 
      
 91 
     | 
    
         
            +
              end
         
     | 
| 
      
 92 
     | 
    
         
            +
              
         
     | 
| 
      
 93 
     | 
    
         
            +
              def teardown
         
     | 
| 
      
 94 
     | 
    
         
            +
                FileUtils.cd(@prev_dir)
         
     | 
| 
      
 95 
     | 
    
         
            +
                FileUtils.rm_rf(@tmp_dir.to_s)
         
     | 
| 
      
 96 
     | 
    
         
            +
              end
         
     | 
| 
      
 97 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: milkode
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 11
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
     | 
    
         
            -
              -  
     | 
| 
      
 8 
     | 
    
         
            +
              - 5
         
     | 
| 
       9 
9 
     | 
    
         
             
              - 0
         
     | 
| 
       10 
10 
     | 
    
         
             
              segments_generated: true
         
     | 
| 
       11 
     | 
    
         
            -
              version: 0. 
     | 
| 
      
 11 
     | 
    
         
            +
              version: 0.5.0
         
     | 
| 
       12 
12 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       13 
13 
     | 
    
         
             
            authors: 
         
     | 
| 
       14 
14 
     | 
    
         
             
            - ongaeshi
         
     | 
| 
         @@ -16,7 +16,7 @@ autorequire: 
     | 
|
| 
       16 
16 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       17 
17 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            date: 2012- 
     | 
| 
      
 19 
     | 
    
         
            +
            date: 2012-03-09 00:00:00 +09:00
         
     | 
| 
       20 
20 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       21 
21 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       22 
22 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -296,9 +296,11 @@ files: 
     | 
|
| 
       296 
296 
     | 
    
         
             
            - bin/milk
         
     | 
| 
       297 
297 
     | 
    
         
             
            - lib/milkode/cdstk/cdstk.rb
         
     | 
| 
       298 
298 
     | 
    
         
             
            - lib/milkode/cdstk/cdstk_command.rb
         
     | 
| 
       299 
     | 
    
         
            -
            - lib/milkode/cdstk/cdstk_yaml.rb
         
     | 
| 
       300 
299 
     | 
    
         
             
            - lib/milkode/cdstk/cli_cdstk.rb
         
     | 
| 
       301 
300 
     | 
    
         
             
            - lib/milkode/cdstk/cli_cdstksub.rb
         
     | 
| 
      
 301 
     | 
    
         
            +
            - lib/milkode/cdstk/milkode_yaml.rb
         
     | 
| 
      
 302 
     | 
    
         
            +
            - lib/milkode/cdstk/package.rb
         
     | 
| 
      
 303 
     | 
    
         
            +
            - lib/milkode/cdstk/yaml_file_wrapper.rb
         
     | 
| 
       302 
304 
     | 
    
         
             
            - lib/milkode/cdweb/app.rb
         
     | 
| 
       303 
305 
     | 
    
         
             
            - lib/milkode/cdweb/cli_cdweb.rb
         
     | 
| 
       304 
306 
     | 
    
         
             
            - lib/milkode/cdweb/config.ru
         
     | 
| 
         @@ -321,10 +323,12 @@ files: 
     | 
|
| 
       321 
323 
     | 
    
         
             
            - lib/milkode/cdweb/public/images/go-home-5.png
         
     | 
| 
       322 
324 
     | 
    
         
             
            - lib/milkode/cdweb/public/js/milkode.js
         
     | 
| 
       323 
325 
     | 
    
         
             
            - lib/milkode/cdweb/views/filelist.haml
         
     | 
| 
      
 326 
     | 
    
         
            +
            - lib/milkode/cdweb/views/header_menu.haml
         
     | 
| 
       324 
327 
     | 
    
         
             
            - lib/milkode/cdweb/views/help.haml
         
     | 
| 
       325 
328 
     | 
    
         
             
            - lib/milkode/cdweb/views/index.haml
         
     | 
| 
       326 
329 
     | 
    
         
             
            - lib/milkode/cdweb/views/layout.haml
         
     | 
| 
       327 
330 
     | 
    
         
             
            - lib/milkode/cdweb/views/search.haml
         
     | 
| 
      
 331 
     | 
    
         
            +
            - lib/milkode/cdweb/views/search_form.haml
         
     | 
| 
       328 
332 
     | 
    
         
             
            - lib/milkode/cdweb/views/view.haml
         
     | 
| 
       329 
333 
     | 
    
         
             
            - lib/milkode/common/archive-zip.rb
         
     | 
| 
       330 
334 
     | 
    
         
             
            - lib/milkode/common/dbdir.rb
         
     | 
| 
         @@ -332,6 +336,8 @@ files: 
     | 
|
| 
       332 
336 
     | 
    
         
             
            - lib/milkode/common/display_util.rb
         
     | 
| 
       333 
337 
     | 
    
         
             
            - lib/milkode/common/grenfiletest.rb
         
     | 
| 
       334 
338 
     | 
    
         
             
            - lib/milkode/common/grensnip.rb
         
     | 
| 
      
 339 
     | 
    
         
            +
            - lib/milkode/common/ignore_checker.rb
         
     | 
| 
      
 340 
     | 
    
         
            +
            - lib/milkode/common/ignore_setting.rb
         
     | 
| 
       335 
341 
     | 
    
         
             
            - lib/milkode/common/platform.rb
         
     | 
| 
       336 
342 
     | 
    
         
             
            - lib/milkode/common/string_snip.rb
         
     | 
| 
       337 
343 
     | 
    
         
             
            - lib/milkode/common/util.rb
         
     | 
| 
         @@ -339,11 +345,14 @@ files: 
     | 
|
| 
       339 
345 
     | 
    
         
             
            - lib/milkode/findgrep/result.rb
         
     | 
| 
       340 
346 
     | 
    
         
             
            - lib/milkode/grep/cli_grep.rb
         
     | 
| 
       341 
347 
     | 
    
         
             
            - milkode.gemspec
         
     | 
| 
      
 348 
     | 
    
         
            +
            - test/data/.gitignore
         
     | 
| 
       342 
349 
     | 
    
         
             
            - test/data/a_project/cdstk.rb
         
     | 
| 
       343 
350 
     | 
    
         
             
            - test/data/a_project/cdstk_yaml.rb
         
     | 
| 
       344 
351 
     | 
    
         
             
            - test/data/abc.zip
         
     | 
| 
       345 
352 
     | 
    
         
             
            - test/data/b_project/runner.rb
         
     | 
| 
       346 
353 
     | 
    
         
             
            - test/data/b_project/test_dir.rb
         
     | 
| 
      
 354 
     | 
    
         
            +
            - test/data/no_auto_ignore/.gitignore
         
     | 
| 
      
 355 
     | 
    
         
            +
            - test/data/no_auto_ignore/a.txt
         
     | 
| 
       347 
356 
     | 
    
         
             
            - test/data/nodir_abc.zip
         
     | 
| 
       348 
357 
     | 
    
         
             
            - test/data/nodir_abc_xpi.xpi
         
     | 
| 
       349 
358 
     | 
    
         
             
            - test/file_assert.rb
         
     | 
| 
         @@ -354,7 +363,6 @@ files: 
     | 
|
| 
       354 
363 
     | 
    
         
             
            - test/test_bin_exec.rb
         
     | 
| 
       355 
364 
     | 
    
         
             
            - test/test_cdstk.rb
         
     | 
| 
       356 
365 
     | 
    
         
             
            - test/test_cdstk_command.rb
         
     | 
| 
       357 
     | 
    
         
            -
            - test/test_cdstk_yaml.rb
         
     | 
| 
       358 
366 
     | 
    
         
             
            - test/test_cli_cdstk.rb
         
     | 
| 
       359 
367 
     | 
    
         
             
            - test/test_cli_grep.rb
         
     | 
| 
       360 
368 
     | 
    
         
             
            - test/test_coderay_wrapper.rb
         
     | 
| 
         @@ -364,10 +372,15 @@ files: 
     | 
|
| 
       364 
372 
     | 
    
         
             
            - test/test_dir.rb
         
     | 
| 
       365 
373 
     | 
    
         
             
            - test/test_gren_util.rb
         
     | 
| 
       366 
374 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
      
 375 
     | 
    
         
            +
            - test/test_ignore_checker.rb
         
     | 
| 
      
 376 
     | 
    
         
            +
            - test/test_ignore_setting.rb
         
     | 
| 
      
 377 
     | 
    
         
            +
            - test/test_milkode_yaml.rb
         
     | 
| 
       367 
378 
     | 
    
         
             
            - test/test_mkurl.rb
         
     | 
| 
      
 379 
     | 
    
         
            +
            - test/test_package.rb
         
     | 
| 
       368 
380 
     | 
    
         
             
            - test/test_query.rb
         
     | 
| 
       369 
381 
     | 
    
         
             
            - test/test_string_snip.rb
         
     | 
| 
       370 
382 
     | 
    
         
             
            - test/test_util.rb
         
     | 
| 
      
 383 
     | 
    
         
            +
            - test/test_yaml_file_wrapper.rb
         
     | 
| 
       371 
384 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       372 
385 
     | 
    
         
             
            homepage: http://github.com/ongaeshi/milkode
         
     | 
| 
       373 
386 
     | 
    
         
             
            licenses: 
         
     | 
| 
         @@ -1,140 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- coding: utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            # @file 
         
     | 
| 
       4 
     | 
    
         
            -
            # @brief
         
     | 
| 
       5 
     | 
    
         
            -
            # @author ongaeshi
         
     | 
| 
       6 
     | 
    
         
            -
            # @date   2011/02/20
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            require 'yaml'
         
     | 
| 
       9 
     | 
    
         
            -
            require 'pathname'
         
     | 
| 
       10 
     | 
    
         
            -
            require 'milkode/common/dbdir'
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            module Milkode
         
     | 
| 
       13 
     | 
    
         
            -
              class CdstkYaml
         
     | 
| 
       14 
     | 
    
         
            -
                class YAMLAlreadyExist < RuntimeError
         
     | 
| 
       15 
     | 
    
         
            -
                end
         
     | 
| 
       16 
     | 
    
         
            -
                
         
     | 
| 
       17 
     | 
    
         
            -
                class YAMLNotExist < RuntimeError
         
     | 
| 
       18 
     | 
    
         
            -
                end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                def self.create(path = ".")
         
     | 
| 
       21 
     | 
    
         
            -
                  yf = yaml_file(path)
         
     | 
| 
       22 
     | 
    
         
            -
                  raise YAMLAlreadyExist.new if FileTest.exist? yf
         
     | 
| 
       23 
     | 
    
         
            -
                  obj = CdstkYaml.new(yf, {'contents' => [], 'version' => 0.1})
         
     | 
| 
       24 
     | 
    
         
            -
                  obj.save
         
     | 
| 
       25 
     | 
    
         
            -
                  return obj
         
     | 
| 
       26 
     | 
    
         
            -
                end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
                def self.load(path = ".")
         
     | 
| 
       29 
     | 
    
         
            -
                  yf = yaml_file(path)
         
     | 
| 
       30 
     | 
    
         
            -
                  raise YAMLNotExist.new unless FileTest.exist? yf
         
     | 
| 
       31 
     | 
    
         
            -
                  open(yf) do |f|
         
     | 
| 
       32 
     | 
    
         
            -
                    return CdstkYaml.new(yf, YAML.load(f.read()))
         
     | 
| 
       33 
     | 
    
         
            -
                  end
         
     | 
| 
       34 
     | 
    
         
            -
                end
         
     | 
| 
       35 
     | 
    
         
            -
             
     | 
| 
       36 
     | 
    
         
            -
                def initialize(yaml_file, data)
         
     | 
| 
       37 
     | 
    
         
            -
                  @yaml_file = yaml_file
         
     | 
| 
       38 
     | 
    
         
            -
                  @data = data
         
     | 
| 
       39 
     | 
    
         
            -
                  normalize
         
     | 
| 
       40 
     | 
    
         
            -
                end
         
     | 
| 
       41 
     | 
    
         
            -
             
     | 
| 
       42 
     | 
    
         
            -
                def normalize
         
     | 
| 
       43 
     | 
    
         
            -
                  if (Util::platform_win?)
         
     | 
| 
       44 
     | 
    
         
            -
                    contents.each do |v|
         
     | 
| 
       45 
     | 
    
         
            -
                      v['directory'] = Util::normalize_filename v['directory']
         
     | 
| 
       46 
     | 
    
         
            -
                    end
         
     | 
| 
       47 
     | 
    
         
            -
                  end
         
     | 
| 
       48 
     | 
    
         
            -
                end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
                def add(dirs)
         
     | 
| 
       51 
     | 
    
         
            -
                  contents.concat(dirs.map{|v|{'directory' => v}})
         
     | 
| 
       52 
     | 
    
         
            -
                  contents.uniq!
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                def remove(query)
         
     | 
| 
       56 
     | 
    
         
            -
                  r = query.select_any?(contents)
         
     | 
| 
       57 
     | 
    
         
            -
                  r.each {|v| contents.delete v}
         
     | 
| 
       58 
     | 
    
         
            -
                end
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                def save
         
     | 
| 
       61 
     | 
    
         
            -
                  open(@yaml_file, "w") { |f| YAML.dump(@data, f) }
         
     | 
| 
       62 
     | 
    
         
            -
                end
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                def contents
         
     | 
| 
       65 
     | 
    
         
            -
                  @data['contents']
         
     | 
| 
       66 
     | 
    
         
            -
                end
         
     | 
| 
       67 
     | 
    
         
            -
             
     | 
| 
       68 
     | 
    
         
            -
                def package_num
         
     | 
| 
       69 
     | 
    
         
            -
                  @data['contents'].size
         
     | 
| 
       70 
     | 
    
         
            -
                end
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
                def directorys
         
     | 
| 
       73 
     | 
    
         
            -
                  contents.map{|v|v['directory']}
         
     | 
| 
       74 
     | 
    
         
            -
                end
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                def version
         
     | 
| 
       77 
     | 
    
         
            -
                  @data['version']
         
     | 
| 
       78 
     | 
    
         
            -
                end
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                def list(query = nil)
         
     | 
| 
       81 
     | 
    
         
            -
                  query ? query.select_all?(contents) : contents
         
     | 
| 
       82 
     | 
    
         
            -
                end
         
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
                def exist?(shortname)
         
     | 
| 
       85 
     | 
    
         
            -
                  @data['contents'].find {|v| File.basename(v['directory']) == shortname }   
         
     | 
| 
       86 
     | 
    
         
            -
                end
         
     | 
| 
       87 
     | 
    
         
            -
             
     | 
| 
       88 
     | 
    
         
            -
                def cant_add_directory?(dir)
         
     | 
| 
       89 
     | 
    
         
            -
                  @data['contents'].find {|v|
         
     | 
| 
       90 
     | 
    
         
            -
                    v['directory'] != File.expand_path(dir) &&
         
     | 
| 
       91 
     | 
    
         
            -
                    File.basename(v['directory']) == File.basename(dir)
         
     | 
| 
       92 
     | 
    
         
            -
                  }
         
     | 
| 
       93 
     | 
    
         
            -
                end
         
     | 
| 
       94 
     | 
    
         
            -
             
     | 
| 
       95 
     | 
    
         
            -
                def cleanup
         
     | 
| 
       96 
     | 
    
         
            -
                  contents.delete_if do |v|
         
     | 
| 
       97 
     | 
    
         
            -
                    if (!File.exist? v['directory'])
         
     | 
| 
       98 
     | 
    
         
            -
                      yield v if block_given?
         
     | 
| 
       99 
     | 
    
         
            -
                      true
         
     | 
| 
       100 
     | 
    
         
            -
                    else
         
     | 
| 
       101 
     | 
    
         
            -
                      false
         
     | 
| 
       102 
     | 
    
         
            -
                    end
         
     | 
| 
       103 
     | 
    
         
            -
                  end
         
     | 
| 
       104 
     | 
    
         
            -
                end
         
     | 
| 
       105 
     | 
    
         
            -
             
     | 
| 
       106 
     | 
    
         
            -
                def package_root(dir)
         
     | 
| 
       107 
     | 
    
         
            -
                  nd = Util::normalize_filename dir
         
     | 
| 
       108 
     | 
    
         
            -
                  @data['contents'].find do |v|
         
     | 
| 
       109 
     | 
    
         
            -
                    v if nd =~ /^#{v['directory']}/
         
     | 
| 
       110 
     | 
    
         
            -
                  end
         
     | 
| 
       111 
     | 
    
         
            -
                end
         
     | 
| 
       112 
     | 
    
         
            -
             
     | 
| 
       113 
     | 
    
         
            -
                def package_root_dir(dir)
         
     | 
| 
       114 
     | 
    
         
            -
                  package = package_root(dir)
         
     | 
| 
       115 
     | 
    
         
            -
                  (package) ? package['directory'] : nil
         
     | 
| 
       116 
     | 
    
         
            -
                end
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                def self.yaml_file(path)
         
     | 
| 
       119 
     | 
    
         
            -
                  Dbdir.yaml_path(path)
         
     | 
| 
       120 
     | 
    
         
            -
                end
         
     | 
| 
       121 
     | 
    
         
            -
             
     | 
| 
       122 
     | 
    
         
            -
                class Query
         
     | 
| 
       123 
     | 
    
         
            -
                  def initialize(keywords)
         
     | 
| 
       124 
     | 
    
         
            -
                    @keywords = keywords
         
     | 
| 
       125 
     | 
    
         
            -
                  end
         
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
                  def select_any?(contents)
         
     | 
| 
       128 
     | 
    
         
            -
                    contents.find_all do |v|
         
     | 
| 
       129 
     | 
    
         
            -
                      @keywords.any? {|s| File.basename(v['directory']).include? s }
         
     | 
| 
       130 
     | 
    
         
            -
                    end
         
     | 
| 
       131 
     | 
    
         
            -
                  end
         
     | 
| 
       132 
     | 
    
         
            -
             
     | 
| 
       133 
     | 
    
         
            -
                  def select_all?(contents)
         
     | 
| 
       134 
     | 
    
         
            -
                    contents.find_all do |v|
         
     | 
| 
       135 
     | 
    
         
            -
                      @keywords.all? {|s| File.basename(v['directory']).include? s }
         
     | 
| 
       136 
     | 
    
         
            -
                    end
         
     | 
| 
       137 
     | 
    
         
            -
                  end
         
     | 
| 
       138 
     | 
    
         
            -
                end
         
     | 
| 
       139 
     | 
    
         
            -
              end
         
     | 
| 
       140 
     | 
    
         
            -
            end
         
     | 
    
        data/test/test_cdstk_yaml.rb
    DELETED
    
    | 
         @@ -1,167 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- coding: utf-8 -*-
         
     | 
| 
       2 
     | 
    
         
            -
            #
         
     | 
| 
       3 
     | 
    
         
            -
            # @file 
         
     | 
| 
       4 
     | 
    
         
            -
            # @brief
         
     | 
| 
       5 
     | 
    
         
            -
            # @author ongaeshi
         
     | 
| 
       6 
     | 
    
         
            -
            # @date   2011/02/20
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       9 
     | 
    
         
            -
            require 'milkode/cdstk/cdstk_yaml.rb'
         
     | 
| 
       10 
     | 
    
         
            -
            require 'fileutils'
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
            class TestCdstkYaml < Test::Unit::TestCase
         
     | 
| 
       13 
     | 
    
         
            -
              include Milkode
         
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
              def setup
         
     | 
| 
       16 
     | 
    
         
            -
                @prev_dir = Dir.pwd
         
     | 
| 
       17 
     | 
    
         
            -
                @tmp_dir = Pathname(File.dirname(__FILE__)) + "tmp"
         
     | 
| 
       18 
     | 
    
         
            -
                FileUtils.rm_rf(@tmp_dir.to_s)
         
     | 
| 
       19 
     | 
    
         
            -
                FileUtils.mkdir_p(@tmp_dir.to_s)
         
     | 
| 
       20 
     | 
    
         
            -
                FileUtils.cd(@tmp_dir.to_s)
         
     | 
| 
       21 
     | 
    
         
            -
              end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
              def test_000
         
     | 
| 
       24 
     | 
    
         
            -
                # create
         
     | 
| 
       25 
     | 
    
         
            -
                yaml = CdstkYaml.create
         
     | 
| 
       26 
     | 
    
         
            -
                assert_equal yaml.contents, []
         
     | 
| 
       27 
     | 
    
         
            -
                assert_equal yaml.version, 0.1
         
     | 
| 
       28 
     | 
    
         
            -
                assert_raise(CdstkYaml::YAMLAlreadyExist) { CdstkYaml.create }
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                # load
         
     | 
| 
       31 
     | 
    
         
            -
                yaml = CdstkYaml.load
         
     | 
| 
       32 
     | 
    
         
            -
                assert_equal yaml.contents, []
         
     | 
| 
       33 
     | 
    
         
            -
                assert_equal yaml.version, 0.1
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                # load fail
         
     | 
| 
       36 
     | 
    
         
            -
                FileUtils.mkdir 'loadtest'
         
     | 
| 
       37 
     | 
    
         
            -
                FileUtils.cd 'loadtest' do
         
     | 
| 
       38 
     | 
    
         
            -
                  assert_raise(CdstkYaml::YAMLNotExist) { CdstkYaml.load }
         
     | 
| 
       39 
     | 
    
         
            -
                end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
                # add
         
     | 
| 
       42 
     | 
    
         
            -
                yaml.add(['dir1'])
         
     | 
| 
       43 
     | 
    
         
            -
                yaml.add(['dir2', 'dir3'])
         
     | 
| 
       44 
     | 
    
         
            -
                assert_equal ['dir1', 'dir2', 'dir3'], yaml.directorys
         
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
                # remove
         
     | 
| 
       47 
     | 
    
         
            -
                yaml.add(['dir2', 'dir4', 'dir5'])
         
     | 
| 
       48 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new ['dir5'])
         
     | 
| 
       49 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new ['dir2', 'dir3'])
         
     | 
| 
       50 
     | 
    
         
            -
                assert_equal ['dir1', 'dir4'], yaml.directorys
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                # save
         
     | 
| 
       53 
     | 
    
         
            -
                yaml.save
         
     | 
| 
       54 
     | 
    
         
            -
                r = YAML.load(open('milkode.yaml').read)
         
     | 
| 
       55 
     | 
    
         
            -
                assert_equal 0.1, r['version']
         
     | 
| 
       56 
     | 
    
         
            -
                assert_equal([{'directory'=>'dir1'}, {'directory' => 'dir4'}], r['contents'])
         
     | 
| 
       57 
     | 
    
         
            -
              end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
              def test_001
         
     | 
| 
       60 
     | 
    
         
            -
                FileUtils.mkdir 'otherpath'
         
     | 
| 
       61 
     | 
    
         
            -
                yaml = CdstkYaml.create('otherpath')
         
     | 
| 
       62 
     | 
    
         
            -
                yaml.save
         
     | 
| 
       63 
     | 
    
         
            -
                
         
     | 
| 
       64 
     | 
    
         
            -
                # save
         
     | 
| 
       65 
     | 
    
         
            -
                r = YAML.load(open('otherpath/milkode.yaml').read)
         
     | 
| 
       66 
     | 
    
         
            -
                assert_equal 0.1, r['version']
         
     | 
| 
       67 
     | 
    
         
            -
                assert_equal([], r['contents'])
         
     | 
| 
       68 
     | 
    
         
            -
              end
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
              def test_query
         
     | 
| 
       71 
     | 
    
         
            -
                d = 'directory'
         
     | 
| 
       72 
     | 
    
         
            -
                
         
     | 
| 
       73 
     | 
    
         
            -
                contents = [{d => 'key'}, {d => 'keyword'}, {d => 'not'}]
         
     | 
| 
       74 
     | 
    
         
            -
             
     | 
| 
       75 
     | 
    
         
            -
                query = CdstkYaml::Query.new(['key'])
         
     | 
| 
       76 
     | 
    
         
            -
                assert_equal [{d => 'key'}, {d => 'keyword'}], query.select_any?(contents)
         
     | 
| 
       77 
     | 
    
         
            -
             
     | 
| 
       78 
     | 
    
         
            -
                query = CdstkYaml::Query.new(['word'])
         
     | 
| 
       79 
     | 
    
         
            -
                assert_equal [{d => 'keyword'}], query.select_any?(contents)
         
     | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
                contents = [{d => 'a/dir'}, {d => 'b/dia'}]
         
     | 
| 
       82 
     | 
    
         
            -
                query = CdstkYaml::Query.new(['a'])
         
     | 
| 
       83 
     | 
    
         
            -
                assert_equal [{d => 'b/dia'}], query.select_any?(contents) # ディレクトリ名は含めない
         
     | 
| 
       84 
     | 
    
         
            -
              end
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
              def test_list
         
     | 
| 
       87 
     | 
    
         
            -
                src = <<EOF
         
     | 
| 
       88 
     | 
    
         
            -
            version: 0.1
         
     | 
| 
       89 
     | 
    
         
            -
            contents: 
         
     | 
| 
       90 
     | 
    
         
            -
            - directory: /a/dir1
         
     | 
| 
       91 
     | 
    
         
            -
            - directory: /b/dir4
         
     | 
| 
       92 
     | 
    
         
            -
            EOF
         
     | 
| 
       93 
     | 
    
         
            -
             
     | 
| 
       94 
     | 
    
         
            -
                yaml = CdstkYaml.new('dummy.yaml', YAML.load(src))
         
     | 
| 
       95 
     | 
    
         
            -
                assert_equal [{"directory"=>"/a/dir1"}, {"directory"=>"/b/dir4"}], yaml.list
         
     | 
| 
       96 
     | 
    
         
            -
                assert_equal [{"directory"=>"/b/dir4"}], yaml.list(CdstkYaml::Query.new(['4']))
         
     | 
| 
       97 
     | 
    
         
            -
                assert_equal [], yaml.list(CdstkYaml::Query.new(['a']))
         
     | 
| 
       98 
     | 
    
         
            -
                assert_equal [{"directory"=>"/a/dir1"}, {"directory"=>"/b/dir4"}], yaml.list(nil)
         
     | 
| 
       99 
     | 
    
         
            -
              end
         
     | 
| 
       100 
     | 
    
         
            -
             
     | 
| 
       101 
     | 
    
         
            -
              def test_remove
         
     | 
| 
       102 
     | 
    
         
            -
                src = <<EOF
         
     | 
| 
       103 
     | 
    
         
            -
            version: 0.1
         
     | 
| 
       104 
     | 
    
         
            -
            contents: 
         
     | 
| 
       105 
     | 
    
         
            -
            - directory: /a/dir1
         
     | 
| 
       106 
     | 
    
         
            -
            - directory: /b/dir4
         
     | 
| 
       107 
     | 
    
         
            -
            EOF
         
     | 
| 
       108 
     | 
    
         
            -
             
     | 
| 
       109 
     | 
    
         
            -
                yaml = CdstkYaml.new('dummy.yaml', YAML.load(src))
         
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
       111 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new(['dir4']))
         
     | 
| 
       112 
     | 
    
         
            -
                assert_equal [{"directory"=>"/a/dir1"}], yaml.list
         
     | 
| 
       113 
     | 
    
         
            -
             
     | 
| 
       114 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new(['dir1']))
         
     | 
| 
       115 
     | 
    
         
            -
                assert_equal [], yaml.list
         
     | 
| 
       116 
     | 
    
         
            -
             
     | 
| 
       117 
     | 
    
         
            -
                # ---
         
     | 
| 
       118 
     | 
    
         
            -
             
     | 
| 
       119 
     | 
    
         
            -
                yaml = CdstkYaml.new('dummy.yaml', YAML.load(src))
         
     | 
| 
       120 
     | 
    
         
            -
             
     | 
| 
       121 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new(['dir1']))
         
     | 
| 
       122 
     | 
    
         
            -
                assert_equal [{"directory"=>"/b/dir4"}], yaml.list
         
     | 
| 
       123 
     | 
    
         
            -
             
     | 
| 
       124 
     | 
    
         
            -
                yaml.remove(CdstkYaml::Query.new([]))
         
     | 
| 
       125 
     | 
    
         
            -
                assert_equal [{"directory"=>"/b/dir4"}], yaml.list
         
     | 
| 
       126 
     | 
    
         
            -
             
     | 
| 
       127 
     | 
    
         
            -
              end
         
     | 
| 
       128 
     | 
    
         
            -
             
     | 
| 
       129 
     | 
    
         
            -
              def test_exist
         
     | 
| 
       130 
     | 
    
         
            -
                src = <<EOF
         
     | 
| 
       131 
     | 
    
         
            -
            version: 0.1
         
     | 
| 
       132 
     | 
    
         
            -
            contents: 
         
     | 
| 
       133 
     | 
    
         
            -
            - directory: /a/dir1
         
     | 
| 
       134 
     | 
    
         
            -
            - directory: /b/dir12
         
     | 
| 
       135 
     | 
    
         
            -
            - directory: /b/dir4
         
     | 
| 
       136 
     | 
    
         
            -
            EOF
         
     | 
| 
       137 
     | 
    
         
            -
             
     | 
| 
       138 
     | 
    
         
            -
                yaml = CdstkYaml.new('dummy.yaml', YAML.load(src))
         
     | 
| 
       139 
     | 
    
         
            -
             
     | 
| 
       140 
     | 
    
         
            -
                assert_not_nil yaml.exist?('dir1')
         
     | 
| 
       141 
     | 
    
         
            -
                assert_not_nil yaml.exist?('dir12')
         
     | 
| 
       142 
     | 
    
         
            -
                assert_nil yaml.exist?('dir123')
         
     | 
| 
       143 
     | 
    
         
            -
                assert_nil yaml.exist?('dir')
         
     | 
| 
       144 
     | 
    
         
            -
              end
         
     | 
| 
       145 
     | 
    
         
            -
             
     | 
| 
       146 
     | 
    
         
            -
              def test_package_root
         
     | 
| 
       147 
     | 
    
         
            -
                src = <<EOF
         
     | 
| 
       148 
     | 
    
         
            -
            version: 0.1
         
     | 
| 
       149 
     | 
    
         
            -
            contents: 
         
     | 
| 
       150 
     | 
    
         
            -
            - directory: /a/dir1
         
     | 
| 
       151 
     | 
    
         
            -
            - directory: /path/to/dir
         
     | 
| 
       152 
     | 
    
         
            -
            - directory: /a/b/c
         
     | 
| 
       153 
     | 
    
         
            -
            EOF
         
     | 
| 
       154 
     | 
    
         
            -
             
     | 
| 
       155 
     | 
    
         
            -
                yaml = CdstkYaml.new('dummy.yaml', YAML.load(src))
         
     | 
| 
       156 
     | 
    
         
            -
             
     | 
| 
       157 
     | 
    
         
            -
                assert_equal nil           , yaml.package_root_dir('/not_dir')
         
     | 
| 
       158 
     | 
    
         
            -
                assert_equal "/a/dir1"     , yaml.package_root_dir('/a/dir1/dir3')
         
     | 
| 
       159 
     | 
    
         
            -
                assert_equal nil           , yaml.package_root_dir('/hoge/a/dir1/dir3')
         
     | 
| 
       160 
     | 
    
         
            -
                assert_equal '/path/to/dir', yaml.package_root_dir('/path/to/dir')
         
     | 
| 
       161 
     | 
    
         
            -
              end
         
     | 
| 
       162 
     | 
    
         
            -
              
         
     | 
| 
       163 
     | 
    
         
            -
              def teardown
         
     | 
| 
       164 
     | 
    
         
            -
                FileUtils.cd(@prev_dir)
         
     | 
| 
       165 
     | 
    
         
            -
                FileUtils.rm_rf(@tmp_dir.to_s)
         
     | 
| 
       166 
     | 
    
         
            -
              end
         
     | 
| 
       167 
     | 
    
         
            -
            end
         
     |