milkode 0.7.1 → 0.8.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/Gemfile +17 -4
- data/HISTORY.ja.rdoc +27 -0
- data/HISTORY.rdoc +27 -0
- data/LICENSE.txt +23 -1
- data/Rakefile +1 -16
- data/VERSION +1 -1
- data/bin/gmilk +1 -1
- data/bin/milk +1 -1
- data/lib/milkode/cdstk/cdstk.rb +171 -168
- data/lib/milkode/cdstk/milkode_yaml.rb +1 -1
- data/lib/milkode/cdweb/app.rb +11 -3
- data/lib/milkode/cdweb/lib/command.rb +43 -0
- data/lib/milkode/cdweb/lib/database.rb +58 -210
- data/lib/milkode/cdweb/lib/mkurl.rb +10 -1
- data/lib/milkode/cdweb/lib/package_list.rb +61 -0
- data/lib/milkode/cdweb/lib/search_files.rb +2 -1
- data/lib/milkode/cdweb/public/css/bootstrap-responsive.min.css +9 -0
- data/lib/milkode/cdweb/public/css/bootstrap.min.css +9 -0
- data/lib/milkode/cdweb/public/css/milkode.css +44 -9
- data/lib/milkode/cdweb/public/img/glyphicons-halflings-white.png +0 -0
- data/lib/milkode/cdweb/public/img/glyphicons-halflings.png +0 -0
- data/lib/milkode/cdweb/public/js/bootstrap.min.js +6 -0
- data/lib/milkode/cdweb/views/index.haml +52 -16
- data/lib/milkode/cdweb/views/packages.haml +11 -0
- data/lib/milkode/cli.rb +8 -0
- data/lib/milkode/common/array_diff.rb +18 -0
- data/lib/milkode/common/util.rb +16 -0
- data/lib/milkode/database/document_record.rb +64 -0
- data/lib/milkode/database/document_table.rb +341 -0
- data/lib/milkode/database/groonga_database.rb +105 -0
- data/lib/milkode/database/package_table.rb +98 -0
- data/lib/milkode/findgrep/findgrep.rb +20 -124
- data/lib/milkode/grep/cli_grep.rb +3 -1
- data/milkode.gemspec +32 -2
- data/test/data/.gitignore +4 -0
- data/test/data/c_project/a.txt +1 -0
- data/test/data/c_project/abc.c +2 -0
- data/test/data/c_project/abc.h +3 -0
- data/test/data/c_project/b.txt +1 -0
- data/test/data/c_project/c.txt +1 -0
- data/test/data/c_project/cc.txt +1 -0
- data/test/data/c_project/to/file.rb +1 -0
- data/test/test_cdstk.rb +4 -4
- data/test/test_cli.rb +9 -2
- data/test/test_database.rb +5 -14
- data/test/test_document_record.rb +77 -0
- data/test/test_document_table.rb +317 -0
- data/test/test_groonga_database.rb +58 -0
- data/test/test_mkurl.rb +2 -0
- data/test/test_package_list.rb +21 -0
- data/test/test_package_table.rb +215 -0
- data/test/test_util.rb +8 -0
- metadata +57 -5
@@ -0,0 +1,105 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# @file
|
4
|
+
# @brief
|
5
|
+
# @author ongaeshi
|
6
|
+
# @date 2012/05/28
|
7
|
+
|
8
|
+
require 'rubygems'
|
9
|
+
require 'groonga'
|
10
|
+
require 'milkode/common/dbdir'
|
11
|
+
require 'fileutils'
|
12
|
+
require 'milkode/database/package_table.rb'
|
13
|
+
require 'milkode/database/document_table.rb'
|
14
|
+
require 'milkode/database/document_record.rb'
|
15
|
+
|
16
|
+
module Milkode
|
17
|
+
class GroongaDatabase
|
18
|
+
def initialize
|
19
|
+
@database = nil
|
20
|
+
end
|
21
|
+
|
22
|
+
# ディレクトリを指定して開く
|
23
|
+
def open(base_dir)
|
24
|
+
open_file Dbdir.groonga_path(base_dir)
|
25
|
+
end
|
26
|
+
|
27
|
+
# データベースファイルを指定して開く
|
28
|
+
def open_file(filename)
|
29
|
+
if File.exist?(filename)
|
30
|
+
@database = Groonga::Database.open(filename)
|
31
|
+
compatible?(filename)
|
32
|
+
define_schema
|
33
|
+
else
|
34
|
+
FileUtils.mkdir_p(File.dirname filename)
|
35
|
+
@database = Groonga::Database.create(:path => filename)
|
36
|
+
define_schema
|
37
|
+
end
|
38
|
+
|
39
|
+
@packages = nil
|
40
|
+
@documents = nil
|
41
|
+
|
42
|
+
if block_given?
|
43
|
+
begin
|
44
|
+
yield self
|
45
|
+
ensure
|
46
|
+
close unless closed?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# あらかじめ GroongaDatabase#open しておく必要がある
|
52
|
+
def yaml_sync(yaml_contents)
|
53
|
+
yaml_contents.each do |yp|
|
54
|
+
packages.add(yp.name, yp.directory, yp.options) if packages[yp.name].nil?
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def close
|
59
|
+
@database.close
|
60
|
+
@database = nil
|
61
|
+
end
|
62
|
+
|
63
|
+
def closed?
|
64
|
+
@database.nil? or @database.closed?
|
65
|
+
end
|
66
|
+
|
67
|
+
def documents
|
68
|
+
@documents ||= DocumentTable.new(Groonga["documents"])
|
69
|
+
end
|
70
|
+
|
71
|
+
def packages
|
72
|
+
@packages ||= PackageTable.new(Groonga["packages"])
|
73
|
+
end
|
74
|
+
|
75
|
+
def compatible?(filename, no_exit = nil)
|
76
|
+
unless Groonga["documents"] && Groonga["packages"]
|
77
|
+
unless no_exit
|
78
|
+
puts <<EOF
|
79
|
+
Milkode repository is old -> #{filename}.
|
80
|
+
Please rebuild repository,
|
81
|
+
|
82
|
+
milk rebuild --all
|
83
|
+
|
84
|
+
See 'milk --help' or http://milkode.ongaeshi.me .
|
85
|
+
EOF
|
86
|
+
exit -1
|
87
|
+
else
|
88
|
+
nil
|
89
|
+
end
|
90
|
+
else
|
91
|
+
true
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
def define_schema
|
98
|
+
DocumentTable.define_schema
|
99
|
+
PackageTable.define_schema
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
|
@@ -0,0 +1,98 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
#
|
3
|
+
# @file
|
4
|
+
# @brief
|
5
|
+
# @author ongaeshi
|
6
|
+
# @date 2012/05/29
|
7
|
+
|
8
|
+
module Milkode
|
9
|
+
class PackageTable
|
10
|
+
include Enumerable
|
11
|
+
|
12
|
+
def self.define_schema
|
13
|
+
Groonga::Schema.define do |schema|
|
14
|
+
schema.create_table("packages", :type => :hash) do |table|
|
15
|
+
table.string("name")
|
16
|
+
table.string("directory")
|
17
|
+
table.time("addtime")
|
18
|
+
table.time("updatetime")
|
19
|
+
table.time("viewtime")
|
20
|
+
table.time("favtime")
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(table)
|
26
|
+
@table = table
|
27
|
+
end
|
28
|
+
|
29
|
+
def size
|
30
|
+
@table.size
|
31
|
+
end
|
32
|
+
|
33
|
+
def add(name, directory, options)
|
34
|
+
@table.add(name,
|
35
|
+
:name => name,
|
36
|
+
:directory => directory,
|
37
|
+
:addtime => Time.now,
|
38
|
+
:favtime => options[:fav] ? Time.now : Time.at(0))
|
39
|
+
end
|
40
|
+
|
41
|
+
def remove(name)
|
42
|
+
@table[name].delete
|
43
|
+
end
|
44
|
+
|
45
|
+
def remove_all
|
46
|
+
self.each do |r|
|
47
|
+
r.record_id.delete
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def [](name)
|
52
|
+
@table[name]
|
53
|
+
end
|
54
|
+
|
55
|
+
def each
|
56
|
+
@table.select.each do |r|
|
57
|
+
yield r
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def sort(kind, order = "descending")
|
62
|
+
@table.sort([{:key => kind, :order => order}])
|
63
|
+
end
|
64
|
+
|
65
|
+
def dump
|
66
|
+
self.each do |r|
|
67
|
+
p [r.name, r.addtime, r.updatetime, r.viewtime, r.favtime]
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def touch(name, kind, time = Time.now)
|
72
|
+
@table[name][kind] = time
|
73
|
+
end
|
74
|
+
|
75
|
+
def touch_if(name, kind, time = Time.now)
|
76
|
+
record = @table[name]
|
77
|
+
|
78
|
+
if record
|
79
|
+
record[kind] = time
|
80
|
+
else
|
81
|
+
nil
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
def favs
|
86
|
+
sorted = sort('favtime')
|
87
|
+
zero_time = Time.at(0)
|
88
|
+
index = sorted.find_index {|v| v.favtime == zero_time}
|
89
|
+
unless index.nil?
|
90
|
+
sorted[0...index]
|
91
|
+
else
|
92
|
+
sorted
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
|
@@ -7,11 +7,11 @@ require 'kconv'
|
|
7
7
|
require 'milkode/common/platform'
|
8
8
|
require 'milkode/common/grenfiletest'
|
9
9
|
require 'milkode/common/grensnip'
|
10
|
-
require 'groonga'
|
11
10
|
require 'milkode/common/util'
|
12
11
|
include Gren
|
13
12
|
require 'cgi'
|
14
13
|
require 'pathname'
|
14
|
+
require 'milkode/database/groonga_database'
|
15
15
|
|
16
16
|
module FindGrep
|
17
17
|
class FindGrep
|
@@ -79,18 +79,20 @@ module FindGrep
|
|
79
79
|
end
|
80
80
|
|
81
81
|
def open_database()
|
82
|
-
#
|
82
|
+
# データベースファイル
|
83
83
|
dbfile = Pathname(File.expand_path(@option.dbFile))
|
84
|
-
|
84
|
+
|
85
|
+
# データベース開く
|
85
86
|
if dbfile.exist?
|
86
|
-
|
87
|
-
|
87
|
+
if !@grndb || @grndb.closed?
|
88
|
+
@grndb = GroongaDatabase.new
|
89
|
+
@grndb.open_file(dbfile.to_s)
|
90
|
+
@documents = @grndb.documents
|
91
|
+
puts "open : #{dbfile.to_s} open." unless @option.isSilent
|
92
|
+
end
|
88
93
|
else
|
89
94
|
raise "error : #{dbfile.to_s} not found!!"
|
90
95
|
end
|
91
|
-
|
92
|
-
# ドキュメントを取
|
93
|
-
@documents = Groonga::Context.default["documents"]
|
94
96
|
end
|
95
97
|
|
96
98
|
def strs2regs(strs, ignore = false)
|
@@ -205,124 +207,18 @@ module FindGrep
|
|
205
207
|
end
|
206
208
|
|
207
209
|
def searchDatabase
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
expression &= sub_expression
|
219
|
-
end
|
220
|
-
end
|
221
|
-
|
222
|
-
# キーワード(絞り込むための手がかり)
|
223
|
-
@option.keywords.each do |word|
|
224
|
-
sub_expression = record.content =~ word
|
225
|
-
sub_expression |= record.path =~ word
|
226
|
-
if expression.nil?
|
227
|
-
expression = sub_expression
|
228
|
-
else
|
229
|
-
expression &= sub_expression
|
230
|
-
end
|
231
|
-
end
|
232
|
-
|
233
|
-
# パッケージ(OR)
|
234
|
-
pe = package_expression(record, @option.packages)
|
235
|
-
if (pe)
|
236
|
-
if expression.nil?
|
237
|
-
expression = pe
|
238
|
-
else
|
239
|
-
expression &= pe
|
240
|
-
end
|
241
|
-
end
|
242
|
-
|
243
|
-
# パス
|
244
|
-
@option.filePatterns.each do |word|
|
245
|
-
sub_expression = record.path =~ word
|
246
|
-
if expression.nil?
|
247
|
-
expression = sub_expression
|
248
|
-
else
|
249
|
-
expression &= sub_expression
|
250
|
-
end
|
251
|
-
end
|
252
|
-
|
253
|
-
# 拡張子(OR)
|
254
|
-
se = suffix_expression(record)
|
255
|
-
if (se)
|
256
|
-
if expression.nil?
|
257
|
-
expression = se
|
258
|
-
else
|
259
|
-
expression &= se
|
260
|
-
end
|
261
|
-
end
|
262
|
-
|
263
|
-
# 検索式
|
264
|
-
expression
|
265
|
-
end
|
266
|
-
|
267
|
-
# @todo オプションで出来るようにする?
|
268
|
-
# タイムスタンプでソート
|
269
|
-
# records = table.sort([{:key => "_score", :order => "descending"},
|
270
|
-
# {:key => "timestamp", :order => "descending"}])
|
271
|
-
|
272
|
-
# ファイル名でソート
|
273
|
-
table.sort([{:key => "shortpath", :order => "ascending"}])
|
210
|
+
@documents.search(
|
211
|
+
:patterns => @patterns,
|
212
|
+
:keywords => @option.keywords,
|
213
|
+
:paths => @option.filePatterns,
|
214
|
+
:packages => @option.packages,
|
215
|
+
# :restpaths => ,
|
216
|
+
:suffixs => @option.suffixs
|
217
|
+
# :offset => ,
|
218
|
+
# :limit => ,
|
219
|
+
)
|
274
220
|
end
|
275
221
|
|
276
|
-
def and_expression(key, list)
|
277
|
-
sub = nil
|
278
|
-
|
279
|
-
list.each do |word|
|
280
|
-
e = key =~ word
|
281
|
-
if sub.nil?
|
282
|
-
sub = e
|
283
|
-
else
|
284
|
-
sub &= e
|
285
|
-
end
|
286
|
-
end
|
287
|
-
|
288
|
-
sub
|
289
|
-
end
|
290
|
-
|
291
|
-
def package_expression(record, packages)
|
292
|
-
sub = nil
|
293
|
-
|
294
|
-
# @todo 専用カラム package が欲しいところ
|
295
|
-
# でも今でもpackageはORとして機能してるからいいっちゃいい
|
296
|
-
packages.each do |word|
|
297
|
-
e = record.path =~ word
|
298
|
-
if sub.nil?
|
299
|
-
sub = e
|
300
|
-
else
|
301
|
-
sub |= e
|
302
|
-
end
|
303
|
-
end
|
304
|
-
|
305
|
-
sub
|
306
|
-
end
|
307
|
-
private :package_expression
|
308
|
-
|
309
|
-
def suffix_expression(record)
|
310
|
-
sub = nil
|
311
|
-
|
312
|
-
@option.suffixs.each do |word|
|
313
|
-
e = record.suffix =~ word
|
314
|
-
if sub.nil?
|
315
|
-
sub = e
|
316
|
-
else
|
317
|
-
sub |= e
|
318
|
-
end
|
319
|
-
end
|
320
|
-
|
321
|
-
sub
|
322
|
-
end
|
323
|
-
private :suffix_expression
|
324
|
-
|
325
|
-
|
326
222
|
def searchFromDir(stdout, dir, depth)
|
327
223
|
if (@option.depth != -1 && depth > @option.depth)
|
328
224
|
return
|
@@ -154,7 +154,9 @@ EOF
|
|
154
154
|
private
|
155
155
|
|
156
156
|
def self.setup_package(option, my_option, keyword)
|
157
|
-
|
157
|
+
# @memo package指定が簡単になった
|
158
|
+
# dirs = yaml_load.contents.find_all {|p| p.name.include? keyword }.map{|p| p.directory}
|
159
|
+
dirs = yaml_load.contents.find_all {|p| p.name.include? keyword }.map{|p| p.name}
|
158
160
|
raise NotFoundPackage.new keyword if (dirs.empty?)
|
159
161
|
option.packages += dirs
|
160
162
|
my_option[:packages] += dirs
|
data/milkode.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{milkode}
|
8
|
-
s.version = "0.
|
8
|
+
s.version = "0.8.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["ongaeshi"]
|
12
|
-
s.date = %q{2012-
|
12
|
+
s.date = %q{2012-06-20}
|
13
13
|
s.description = %q{Line based local source code search engine & grep-command & web-app.}
|
14
14
|
s.email = %q{ongaeshi0621@gmail.com}
|
15
15
|
s.executables = ["gmilk", "milk"]
|
@@ -42,10 +42,13 @@ Gem::Specification.new do |s|
|
|
42
42
|
"lib/milkode/cdweb/lib/database.rb",
|
43
43
|
"lib/milkode/cdweb/lib/grep.rb",
|
44
44
|
"lib/milkode/cdweb/lib/mkurl.rb",
|
45
|
+
"lib/milkode/cdweb/lib/package_list.rb",
|
45
46
|
"lib/milkode/cdweb/lib/query.rb",
|
46
47
|
"lib/milkode/cdweb/lib/search_contents.rb",
|
47
48
|
"lib/milkode/cdweb/lib/search_files.rb",
|
48
49
|
"lib/milkode/cdweb/lib/web_setting.rb",
|
50
|
+
"lib/milkode/cdweb/public/css/bootstrap-responsive.min.css",
|
51
|
+
"lib/milkode/cdweb/public/css/bootstrap.min.css",
|
49
52
|
"lib/milkode/cdweb/public/css/coderay-patch.css",
|
50
53
|
"lib/milkode/cdweb/public/css/coderay.css",
|
51
54
|
"lib/milkode/cdweb/public/css/milkode.css",
|
@@ -55,17 +58,22 @@ Gem::Specification.new do |s|
|
|
55
58
|
"lib/milkode/cdweb/public/images/file.png",
|
56
59
|
"lib/milkode/cdweb/public/images/go-home-5.png",
|
57
60
|
"lib/milkode/cdweb/public/images/help.png",
|
61
|
+
"lib/milkode/cdweb/public/img/glyphicons-halflings-white.png",
|
62
|
+
"lib/milkode/cdweb/public/img/glyphicons-halflings.png",
|
63
|
+
"lib/milkode/cdweb/public/js/bootstrap.min.js",
|
58
64
|
"lib/milkode/cdweb/public/js/milkode.js",
|
59
65
|
"lib/milkode/cdweb/views/filelist.haml",
|
60
66
|
"lib/milkode/cdweb/views/header_menu.haml",
|
61
67
|
"lib/milkode/cdweb/views/help.haml",
|
62
68
|
"lib/milkode/cdweb/views/index.haml",
|
63
69
|
"lib/milkode/cdweb/views/layout.haml",
|
70
|
+
"lib/milkode/cdweb/views/packages.haml",
|
64
71
|
"lib/milkode/cdweb/views/search.haml",
|
65
72
|
"lib/milkode/cdweb/views/search_form.haml",
|
66
73
|
"lib/milkode/cdweb/views/view.haml",
|
67
74
|
"lib/milkode/cli.rb",
|
68
75
|
"lib/milkode/common/archive-zip.rb",
|
76
|
+
"lib/milkode/common/array_diff.rb",
|
69
77
|
"lib/milkode/common/dbdir.rb",
|
70
78
|
"lib/milkode/common/dir.rb",
|
71
79
|
"lib/milkode/common/display_util.rb",
|
@@ -76,6 +84,10 @@ Gem::Specification.new do |s|
|
|
76
84
|
"lib/milkode/common/platform.rb",
|
77
85
|
"lib/milkode/common/string_snip.rb",
|
78
86
|
"lib/milkode/common/util.rb",
|
87
|
+
"lib/milkode/database/document_record.rb",
|
88
|
+
"lib/milkode/database/document_table.rb",
|
89
|
+
"lib/milkode/database/groonga_database.rb",
|
90
|
+
"lib/milkode/database/package_table.rb",
|
79
91
|
"lib/milkode/findgrep/findgrep.rb",
|
80
92
|
"lib/milkode/findgrep/result.rb",
|
81
93
|
"lib/milkode/grep/cli_grep.rb",
|
@@ -86,6 +98,13 @@ Gem::Specification.new do |s|
|
|
86
98
|
"test/data/abc.zip",
|
87
99
|
"test/data/b_project/runner.rb",
|
88
100
|
"test/data/b_project/test_dir.rb",
|
101
|
+
"test/data/c_project/a.txt",
|
102
|
+
"test/data/c_project/abc.c",
|
103
|
+
"test/data/c_project/abc.h",
|
104
|
+
"test/data/c_project/b.txt",
|
105
|
+
"test/data/c_project/c.txt",
|
106
|
+
"test/data/c_project/cc.txt",
|
107
|
+
"test/data/c_project/to/file.rb",
|
89
108
|
"test/data/no_auto_ignore/.gitignore",
|
90
109
|
"test/data/no_auto_ignore/a.txt",
|
91
110
|
"test/data/nodir_abc.zip",
|
@@ -104,14 +123,19 @@ Gem::Specification.new do |s|
|
|
104
123
|
"test/test_database.rb",
|
105
124
|
"test/test_dbdir.rb",
|
106
125
|
"test/test_dir.rb",
|
126
|
+
"test/test_document_record.rb",
|
127
|
+
"test/test_document_table.rb",
|
107
128
|
"test/test_findgrep.rb",
|
108
129
|
"test/test_gren_util.rb",
|
130
|
+
"test/test_groonga_database.rb",
|
109
131
|
"test/test_helper.rb",
|
110
132
|
"test/test_ignore_checker.rb",
|
111
133
|
"test/test_ignore_setting.rb",
|
112
134
|
"test/test_milkode_yaml.rb",
|
113
135
|
"test/test_mkurl.rb",
|
114
136
|
"test/test_package.rb",
|
137
|
+
"test/test_package_list.rb",
|
138
|
+
"test/test_package_table.rb",
|
115
139
|
"test/test_query.rb",
|
116
140
|
"test/test_string_snip.rb",
|
117
141
|
"test/test_util.rb",
|
@@ -139,6 +163,8 @@ Gem::Specification.new do |s|
|
|
139
163
|
s.add_runtime_dependency(%q<haml>, [">= 3.1.2"])
|
140
164
|
s.add_runtime_dependency(%q<sass>, [">= 3.1.3"])
|
141
165
|
s.add_runtime_dependency(%q<thor>, ["~> 0.15.0"])
|
166
|
+
s.add_development_dependency(%q<bundler>, [">= 0"])
|
167
|
+
s.add_development_dependency(%q<jeweler>, [">= 0"])
|
142
168
|
else
|
143
169
|
s.add_dependency(%q<termcolor>, [">= 1.2.0"])
|
144
170
|
s.add_dependency(%q<rroonga>, [">= 1.1.0"])
|
@@ -151,6 +177,8 @@ Gem::Specification.new do |s|
|
|
151
177
|
s.add_dependency(%q<haml>, [">= 3.1.2"])
|
152
178
|
s.add_dependency(%q<sass>, [">= 3.1.3"])
|
153
179
|
s.add_dependency(%q<thor>, ["~> 0.15.0"])
|
180
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
181
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
154
182
|
end
|
155
183
|
else
|
156
184
|
s.add_dependency(%q<termcolor>, [">= 1.2.0"])
|
@@ -164,6 +192,8 @@ Gem::Specification.new do |s|
|
|
164
192
|
s.add_dependency(%q<haml>, [">= 3.1.2"])
|
165
193
|
s.add_dependency(%q<sass>, [">= 3.1.3"])
|
166
194
|
s.add_dependency(%q<thor>, ["~> 0.15.0"])
|
195
|
+
s.add_dependency(%q<bundler>, [">= 0"])
|
196
|
+
s.add_dependency(%q<jeweler>, [">= 0"])
|
167
197
|
end
|
168
198
|
end
|
169
199
|
|