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.
Files changed (37) hide show
  1. data/VERSION +1 -1
  2. data/bin/gmilk +1 -1
  3. data/bin/milk +1 -1
  4. data/lib/milkode/cdstk/cdstk.rb +337 -117
  5. data/lib/milkode/cdstk/cli_cdstk.rb +27 -9
  6. data/lib/milkode/cdstk/cli_cdstksub.rb +44 -6
  7. data/lib/milkode/cdstk/milkode_yaml.rb +105 -0
  8. data/lib/milkode/cdstk/package.rb +83 -0
  9. data/lib/milkode/cdstk/yaml_file_wrapper.rb +94 -0
  10. data/lib/milkode/cdweb/app.rb +6 -28
  11. data/lib/milkode/cdweb/lib/database.rb +6 -0
  12. data/lib/milkode/cdweb/lib/grep.rb +28 -0
  13. data/lib/milkode/cdweb/lib/mkurl.rb +2 -0
  14. data/lib/milkode/cdweb/lib/search_contents.rb +49 -10
  15. data/lib/milkode/cdweb/views/filelist.haml +2 -6
  16. data/lib/milkode/cdweb/views/header_menu.haml +5 -0
  17. data/lib/milkode/cdweb/views/search.haml +4 -8
  18. data/lib/milkode/cdweb/views/search_form.haml +22 -0
  19. data/lib/milkode/cdweb/views/view.haml +2 -6
  20. data/lib/milkode/common/ignore_checker.rb +34 -0
  21. data/lib/milkode/common/ignore_setting.rb +62 -0
  22. data/lib/milkode/grep/cli_grep.rb +10 -9
  23. data/milkode.gemspec +18 -5
  24. data/test/data/.gitignore +42 -0
  25. data/test/data/no_auto_ignore/.gitignore +1 -0
  26. data/test/data/no_auto_ignore/a.txt +3 -0
  27. data/test/milkode_test_work.rb +2 -2
  28. data/test/test_cdstk.rb +17 -12
  29. data/test/test_database.rb +4 -4
  30. data/test/test_ignore_checker.rb +26 -0
  31. data/test/test_ignore_setting.rb +113 -0
  32. data/test/test_milkode_yaml.rb +149 -0
  33. data/test/test_package.rb +73 -0
  34. data/test/test_yaml_file_wrapper.rb +97 -0
  35. metadata +19 -6
  36. data/lib/milkode/cdstk/cdstk_yaml.rb +0 -140
  37. 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: 15
4
+ hash: 11
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 4
8
+ - 5
9
9
  - 0
10
10
  segments_generated: true
11
- version: 0.4.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-02-02 00:00:00 +09:00
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
@@ -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