milkode 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,19 @@
1
+ === 1.1.0 2013/06/26
2
+
3
+ * milk web
4
+ * Support relative URL (e.g. http://example.com/milkode)
5
+ * Change milkode.css -> milkode.scss (For url_for)
6
+
7
+ * milk
8
+ * 'milk files' add --all option
9
+
10
+ * gmilk
11
+ * Add exist_command?('cat')
12
+ * Change how to call exist_command?
13
+
14
+ * etc
15
+ * Add sinatra-url-for
16
+
1
17
  === 1.0.2 2013/06/08
2
18
 
3
19
  * gmilk
@@ -1,3 +1,19 @@
1
+ === 1.1.0 2013/06/26
2
+
3
+ * milk web
4
+ * Support relative URL (e.g. http://example.com/milkode)
5
+ * Change milkode.css -> milkode.scss (For url_for)
6
+
7
+ * milk
8
+ * 'milk files' add --all option
9
+
10
+ * gmilk
11
+ * Add exist_command?('cat')
12
+ * Change how to call exist_command?
13
+
14
+ * etc
15
+ * Add sinatra-url-for
16
+
1
17
  === 1.0.2 2013/06/08
2
18
 
3
19
  * gmilk
@@ -146,3 +146,28 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
146
146
  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
147
147
  TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
148
148
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
149
+
150
+ =================================
151
+ sinatra-url-for - Construct absolute paths and full URLs
152
+ =================================
153
+
154
+ Copyright 2009 Eric Kidd
155
+
156
+ Permission is hereby granted, free of charge, to any person obtaining
157
+ a copy of this software and associated documentation files (the
158
+ "Software"), to deal in the Software without restriction, including
159
+ without limitation the rights to use, copy, modify, merge, publish,
160
+ distribute, sublicense, and/or sell copies of the Software, and to
161
+ permit persons to whom the Software is furnished to do so, subject to
162
+ the following conditions:
163
+
164
+ The above copyright notice and this permission notice shall be
165
+ included in all copies or substantial portions of the Software.
166
+
167
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
168
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
169
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
170
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
171
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
172
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
173
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.2
1
+ 1.1.0
data/bin/gmilk CHANGED
@@ -6,5 +6,5 @@
6
6
  require 'rubygems'
7
7
  require 'milkode/grep/cli_grep'
8
8
 
9
- Version = "1.0.2"
9
+ Version = "1.1.0"
10
10
  Milkode::CLI_Grep.execute(STDOUT, ARGV)
data/bin/milk CHANGED
@@ -6,5 +6,5 @@
6
6
  require 'rubygems'
7
7
  require 'milkode/cli'
8
8
 
9
- Version = "1.0.2"
9
+ Version = "1.1.0"
10
10
  Milkode::CLI.start(ARGV)
@@ -956,7 +956,7 @@ EOF
956
956
  end
957
957
 
958
958
  def files(args, options)
959
- packages = find_packages(args)
959
+ packages = options[:all] ? @yaml.contents : find_packages(args)
960
960
  return if (packages.empty?)
961
961
 
962
962
  db_open
@@ -968,7 +968,11 @@ EOF
968
968
  if options[:relative]
969
969
  @out.puts Util::relative_path(record.path, basedir)
970
970
  else
971
- @out.puts record.restpath
971
+ if options[:all]
972
+ @out.puts record.path
973
+ else
974
+ @out.puts record.restpath
975
+ end
972
976
  end
973
977
  end
974
978
  end
@@ -23,17 +23,32 @@ require 'milkode/cdweb/lib/web_setting'
23
23
  require 'milkode/cdweb/lib/package_list'
24
24
  require 'milkode/cdweb/lib/info_home'
25
25
  require 'milkode/cdweb/lib/info_package'
26
+ require 'sinatra/url_for'
26
27
 
27
28
  set :haml, :format => :html5
28
29
 
30
+ get '/js/:filename' do
31
+ content_type :js
32
+ erb(File.read(File.join(settings.views, params[:filename])))
33
+ end
34
+
35
+ get '/css/milkode.css' do
36
+ content_type :css
37
+
38
+ contents = File.read(File.join(settings.views, 'milkode.scss'))
39
+ contents = erb(contents)
40
+ engine = Sass::Engine.new(contents, :syntax => :scss)
41
+ engine.render
42
+ end
43
+
29
44
  get '/' do
30
45
  if Database.validate?
31
46
  @setting = WebSetting.new
32
- @version = "1.0.2"
47
+ @version = "1.1.0"
33
48
 
34
49
  @package_num = Database.instance.yaml_package_num
35
50
  @file_num = Database.instance.totalRecords
36
- @package_list = PackageList.new(Database.instance.grndb)
51
+ @package_list = PackageList.new(Database.instance.grndb, url_for(''))
37
52
  haml :index, :layout => false
38
53
  else
39
54
  <<EOF
@@ -43,8 +58,8 @@ EOF
43
58
  end
44
59
  end
45
60
 
46
- def package_path(path)
47
- path.split('/')[0,3].join('/')
61
+ def package_path(homeurl, path)
62
+ homeurl + path.sub(homeurl, "").split('/')[0,2].join('/')
48
63
  end
49
64
 
50
65
  post '/search*' do
@@ -53,22 +68,24 @@ post '/search*' do
53
68
  if params[:clear]
54
69
  redirect Mkurl.new("#{path}", params).inherit_shead
55
70
  else
71
+ homeurl = url_for "/home"
72
+
56
73
  case params[:shead]
57
74
  when 'all'
58
- path = "/home"
75
+ path = homeurl
59
76
  when 'package'
60
- path = package_path(path)
77
+ path = package_path(homeurl, path)
61
78
  when 'directory'
62
79
  # do nothing
63
80
  else
64
- path = package_path(path)
81
+ path = package_path(homeurl, path)
65
82
  end
66
83
 
67
84
  query = Query.new(params[:query])
68
85
  # gotolineモードで1つだけ渡された時は直接ジャンプ
69
86
  if query.keywords.size == 1 && Milkode::Util::gotoline_keyword?(query.keywords[0])
70
87
  gotoline = Milkode::Util::parse_gotoline(query.keywords)[0]
71
- path2 = File.join('/home', gotoline[0][0])
88
+ path2 = File.join(url_for('/home'), gotoline[0][0])
72
89
  redirect Mkurl.new(path2, params).inherit_query_shead + "#n#{gotoline[1]}"
73
90
  else
74
91
  redirect Mkurl.new("#{path}", params).inherit_query_shead
@@ -89,7 +106,7 @@ post '/command' do
89
106
  end
90
107
  when 'favorite'
91
108
  Database.instance.set_fav(params[:name], params[:favorited] == 'true')
92
- @package_list = PackageList.new(Database.instance.grndb)
109
+ @package_list = PackageList.new(Database.instance.grndb, url_for(''))
93
110
  "お気に入り: " + @package_list.favorite_list({})
94
111
  end
95
112
  end
@@ -98,21 +115,22 @@ get '/home*' do |path|
98
115
  before = Time.now
99
116
  path = path.sub(/^\//, "")
100
117
  record = Database.instance.record(path)
101
- @package_list = PackageList.new(Database.instance.grndb)
118
+ @package_list = PackageList.new(Database.instance.grndb, url_for(''))
119
+ suburl = url_for('')
102
120
 
103
121
  if path.empty?
104
122
  if (params[:query] and !params[:query].empty?)
105
- search(path, params, before)
123
+ search(path, params, before, suburl)
106
124
  else
107
- packages(params, before)
125
+ packages(params, before, suburl)
108
126
  end
109
127
  elsif (record)
110
128
  view(record, params, before)
111
129
  else
112
130
  if (params[:query] and !params[:query].empty?)
113
- search(path, params, before)
131
+ search(path, params, before, suburl)
114
132
  else
115
- filelist(path, params, before)
133
+ filelist(path, params, before, suburl)
116
134
  end
117
135
  end
118
136
  end
@@ -124,7 +142,7 @@ get %r{/help} do
124
142
  end
125
143
 
126
144
  get '/info' do
127
- obj = InfoHome.new
145
+ obj = InfoHome.new(url_for '')
128
146
 
129
147
  @setting = WebSetting.new
130
148
  @path = ""
@@ -138,7 +156,7 @@ get '/info/:package' do
138
156
  before = Time.now
139
157
 
140
158
  name = params[:package]
141
- obj = InfoPackage.new(name)
159
+ obj = InfoPackage.new(name, url_for(''))
142
160
 
143
161
  @setting = WebSetting.new
144
162
  @path = name
@@ -215,8 +233,10 @@ EOF
215
233
  end
216
234
 
217
235
  def create_headmenu(path, query, flistpath = '')
218
- href = Mkurl.new('/home/' + path, params).inherit_query_shead
219
- flist = File.join("/home/#{path}", flistpath)
236
+ suburl = url_for ""
237
+
238
+ href = Mkurl.new("#{suburl}/home/#{path}", params).inherit_query_shead
239
+ flist = File.join("#{suburl}/home/#{path}", flistpath)
220
240
 
221
241
  package_name = ""
222
242
  modal_body = "全てのパッケージを更新しますか?"
@@ -226,15 +246,15 @@ EOF
226
246
  modal_body = "#{package_name} を更新しますか?"
227
247
  end
228
248
 
229
- info_path = "/info"
249
+ info_path = "#{suburl}/info"
230
250
  info_path = File.join(info_path, package_name) if package_name != ""
231
251
 
232
252
  <<EOF
233
- #{headicon('go-home-5.png')}<a href="/home" class="headmenu">ホーム</a>&nbsp;
234
- #{headicon('directory.png')}<a href="#{flist}" class="headmenu">ディレクトリ</a>
235
- #{headicon('view-refresh-4.png')}<a href="#updateModal" class="headmenu" data-toggle="modal">パッケージを更新</a>&nbsp;
236
- #{headicon('info.png')}<a href="#{info_path}" class="headmenu">統計情報</a>&nbsp;
237
- #{headicon('help.png')}<a href="/help" class="headmenu">ヘルプ</a>
253
+ #{headicon('go-home-5.png', suburl)}<a href="#{suburl}/home" class="headmenu">ホーム</a>&nbsp;
254
+ #{headicon('directory.png', suburl)}<a href="#{flist}" class="headmenu">ディレクトリ</a>
255
+ #{headicon('view-refresh-4.png', suburl)}<a href="#updateModal" class="headmenu" data-toggle="modal">パッケージを更新</a>&nbsp;
256
+ #{headicon('info.png', suburl)}<a href="#{info_path}" class="headmenu">統計情報</a>&nbsp;
257
+ #{headicon('help.png', suburl)}<a href="#{suburl}/help" class="headmenu">ヘルプ</a>
238
258
 
239
259
  <div id="updateModal" class="modal hide fade">
240
260
  <div class="modal-header">
@@ -279,8 +299,8 @@ EOF
279
299
  EOF
280
300
  end
281
301
 
282
- def headicon(name)
283
- "<img alt='' style='vertical-align:center; border: 0px; margin: 0px;' src='/images/#{name}'>"
302
+ def headicon(name, suburl)
303
+ "<img alt='' style='vertical-align:center; border: 0px; margin: 0px;' src='#{suburl}/images/#{name}'>"
284
304
  end
285
305
 
286
306
  def topic_path(path, params)
@@ -289,7 +309,7 @@ EOF
289
309
 
290
310
  path.split('/').map_with_index {|v, index|
291
311
  href += '/' + v
292
- "<a id='topic_#{index}' href='#{Mkurl.new(href, params).inherit_query_shead}' onclick='topic_path(\"topic_#{index}\");'>#{v}</a>"
312
+ "<a id='topic_#{index}' href='#{url_for Mkurl.new(href, params).inherit_query_shead}' onclick='topic_path(\"topic_#{index}\");'>#{v}</a>"
293
313
  }.join('/')
294
314
  end
295
315
 
@@ -57,6 +57,9 @@ module Milkode
57
57
  # 起動URL生成
58
58
  launch_url = create_launch_url(options)
59
59
 
60
+ # URL設定
61
+ ENV['MILKODE_RELATIVE_URL'] = File.join('/', options[:url]) if options[:url]
62
+
60
63
  # 起動
61
64
  rack_server.start do
62
65
  # この時点でoptions[:Host]やoptions[:Port]などの値が壊れてしまっているため事前にURLを生成している
@@ -71,8 +74,10 @@ module Milkode
71
74
  if (options[:LaunchBrowser])
72
75
  host = options[:Host] || options[:BindAddress] # options[:BindAddress] for WEBrick
73
76
 
74
- if (options[:LaunchURL])
75
- "http://#{host}:#{options[:Port]}#{options[:LaunchURL]}"
77
+ base = "http://#{host}:#{options[:Port]}"
78
+
79
+ if options[:url]
80
+ File.join(base, options[:url])
76
81
  else
77
82
  "http://#{host}:#{options[:Port]}"
78
83
  end
@@ -1,3 +1,6 @@
1
1
  require './app'
2
- run Sinatra::Application
2
+
3
+ map (ENV['MILKODE_RELATIVE_URL'] || '/') do
4
+ run Sinatra::Application
5
+ end
3
6
 
@@ -53,14 +53,14 @@ module Milkode
53
53
  haml :view
54
54
  end
55
55
 
56
- def search(path, params, before)
56
+ def search(path, params, before, suburl)
57
57
  @setting = WebSetting.new
58
58
  @path = path
59
59
  query = Query.new(params[:query])
60
60
  @title = "'#{query.query_string}' in #{path_title(path)}"
61
61
 
62
62
  if (query.gotolines.size > 0)
63
- searcher = SearchFuzzyGotoLine.new(path, params, query)
63
+ searcher = SearchFuzzyGotoLine.new(path, params, query, suburl)
64
64
 
65
65
  if searcher.directjump?
66
66
  redirect searcher.directjump_url
@@ -68,16 +68,16 @@ module Milkode
68
68
 
69
69
  elsif (query.keywords.size > 0)
70
70
  if Util::gotoline_keyword?(query.keywords[0])
71
- searcher = SearchGotoLine.new(path, params, query)
71
+ searcher = SearchGotoLine.new(path, params, query, suburl)
72
72
  else
73
- searcher = SearchContents.new(path, params, query)
73
+ searcher = SearchContents.new(path, params, query, suburl)
74
74
 
75
75
  if searcher.directjump?
76
76
  redirect searcher.directjump_url
77
77
  end
78
78
  end
79
79
  else
80
- searcher = SearchFiles.new(path, params, query)
80
+ searcher = SearchFiles.new(path, params, query, suburl)
81
81
  end
82
82
 
83
83
  @total_records = searcher.total_records
@@ -88,21 +88,21 @@ module Milkode
88
88
  haml :search
89
89
  end
90
90
 
91
- def filelist(path, params, before)
91
+ def filelist(path, params, before, suburl)
92
92
  @setting = WebSetting.new
93
93
  @title = filelist_title(path)
94
94
  @path = path
95
95
  fileList = Database.instance.fileList(path)
96
96
  @total_records = fileList.size
97
97
  @record_content = fileList.map do |v|
98
- "<dt class='result-file'>#{file_or_dirimg(v[1])}<a href='#{Mkurl.new('/home/' + v[0], params).inherit_query_shead}'>#{File.basename v[0]}</a></dt>"
98
+ "<dt class='result-file'>#{file_or_dirimg(v[1], suburl)}<a href='#{Mkurl.new(suburl + '/home/' + v[0], params).inherit_query_shead}'>#{File.basename v[0]}</a></dt>"
99
99
  end.join
100
100
  Database.instance.touch_viewtime(path)
101
101
  @elapsed = Time.now - before
102
102
  haml :filelist
103
103
  end
104
104
 
105
- def packages(params, before)
105
+ def packages(params, before, suburl)
106
106
  @setting = WebSetting.new
107
107
  @title = "Package List"
108
108
  @path = ""
@@ -123,7 +123,7 @@ module Milkode
123
123
  ].join("\n")
124
124
 
125
125
  @record_content = packages.map do |v|
126
- "<dt class='result-file'>#{file_or_dirimg(false)}<a href='#{Mkurl.new('/home/' + v, params).inherit_query_shead}'>#{File.basename v}</a></dt>"
126
+ "<dt class='result-file'>#{file_or_dirimg(false, suburl)}<a href='#{Mkurl.new(suburl + '/home/' + v, params).inherit_query_shead}'>#{File.basename v}</a></dt>"
127
127
  end.join
128
128
  @elapsed = Time.now - before
129
129
  haml :packages
@@ -131,21 +131,21 @@ module Milkode
131
131
 
132
132
  private
133
133
 
134
- def file_or_dirimg(is_file)
135
- src = (is_file) ? 'file.png' : 'directory.png'
136
- img_icon(src)
134
+ def file_or_dirimg(is_file, suburl)
135
+ filename = (is_file) ? 'file.png' : 'directory.png'
136
+ img_icon(filename, suburl)
137
137
  end
138
138
 
139
- def img_icon(srcfile)
140
- "<img alt='' style='vertical-align:bottom; border: 0; margin: 1px;' src='/images/#{srcfile}'>"
139
+ def img_icon(filename, suburl)
140
+ "<img alt='' style='vertical-align:bottom; border: 0; margin: 1px;' src='#{suburl}/images/#{filename}'>"
141
141
  end
142
142
 
143
143
  def sort_change_content(current_value, text, sort_kind = nil)
144
144
  if (current_value != sort_kind)
145
145
  if (sort_kind)
146
- "<a href='#{Mkurl.new('/home', params).inherit_query_shead_set_sort(sort_kind)}'>#{text}</a>"
146
+ "<a href='#{url_for Mkurl.new('/home', params).inherit_query_shead_set_sort(sort_kind)}'>#{text}</a>"
147
147
  else
148
- "<a href='#{Mkurl.new('/home', params).inherit_query_shead}'>#{text}</a>"
148
+ "<a href='#{url_for Mkurl.new('/home', params).inherit_query_shead}'>#{text}</a>"
149
149
  end
150
150
  else
151
151
  text
@@ -10,7 +10,7 @@ module Milkode
10
10
  attr_reader :record_content
11
11
  attr_reader :summary_content
12
12
 
13
- def initialize
13
+ def initialize(suburl)
14
14
  packages = Database.instance.packages(nil)
15
15
 
16
16
  @summary_content = <<EOF
@@ -21,7 +21,7 @@ module Milkode
21
21
  EOF
22
22
 
23
23
  @record_content = packages.map do |name|
24
- "<dt class='result-file'><img src='/images/info.png' /><a href='/info/#{name}'>#{name}</a></dt>"
24
+ "<dt class='result-file'><img src='#{suburl}/images/info.png'/><a href='#{suburl}/info/#{name}'>#{name}</a></dt>"
25
25
  end.join("\n")
26
26
  end
27
27
 
@@ -14,7 +14,9 @@ module Milkode
14
14
  attr_reader :summary_content
15
15
  attr_reader :plang_content
16
16
 
17
- def initialize(name)
17
+ def initialize(name, suburl)
18
+ @suburl = suburl
19
+
18
20
  records = Database.instance.package_records(name)
19
21
  # plangs = sorted_plangs(records)
20
22
 
@@ -54,7 +56,7 @@ EOF
54
56
  params = { :query => lang_to_query(lang) }
55
57
 
56
58
  if params[:query] != ""
57
- url = "/home/" + Mkurl.new(package_name, params).inherit_query_shead
59
+ url = @suburl + "/home/" + Mkurl.new(package_name, params).inherit_query_shead
58
60
  "<tr><td>#{name}</td><td align=\"right\"><a href=\"#{url}\">#{count}</a></td><td align=\"right\">#{percent}%</td></tr>"
59
61
  else
60
62
  "<tr><td>#{name}</td><td align=\"right\">#{count}</td><td align=\"right\">#{percent}%</td></tr>"
@@ -16,8 +16,9 @@ module Milkode
16
16
 
17
17
  FAVORITE_LIST_NUM = 7
18
18
 
19
- def initialize(grndb)
20
- @grndb = grndb
19
+ def initialize(grndb, suburl)
20
+ @grndb = grndb
21
+ @suburl = suburl
21
22
  end
22
23
 
23
24
  # topページへの表示数の調整は結構大切
@@ -47,12 +48,12 @@ module Milkode
47
48
  names = @grndb.packages.favs.map{|r| r.name}[0..FAVORITE_LIST_NUM-1]
48
49
 
49
50
  list = names.map_with_index {|v, index|
50
- "<strong><a id='favorite_list_#{index}' href='#{Mkurl.new('/home/' + v, params).inherit_query_shead}' onclick='topic_path(\"favorite_list_#{index}\");'>#{v}</a></strong>"
51
+ "<strong><a id='favorite_list_#{index}' href='#{Mkurl.new(@suburl + '/home/' + v, params).inherit_query_shead}' onclick='topic_path(\"favorite_list_#{index}\");'>#{v}</a></strong>"
51
52
  }.join("&nbsp;&nbsp;\n")
52
53
 
53
54
  <<EOF
54
55
  #{list}&nbsp;&nbsp;
55
- <a href="/home?sort=favtime">...</a>
56
+ <a href="#{@suburl}/home?sort=favtime">...</a>
56
57
  EOF
57
58
  end
58
59
 
@@ -66,12 +67,12 @@ EOF
66
67
 
67
68
  def top_list(list, column_name)
68
69
  list = list.map {|v|
69
- " <li><a href=\"/home/#{v}\">#{v}</a></li>"
70
+ " <li><a href=\"#{@suburl}/home/#{v}\">#{v}</a></li>"
70
71
  }.join("\n")
71
72
  <<EOF
72
73
  <ul class="unstyled_margin">
73
74
  #{list}
74
- <li><a href=\"/home?sort=#{column_name}">next >></a></li>
75
+ <li><a href=\"#{@suburl}/home?sort=#{column_name}">next >></a></li>
75
76
  </ul>
76
77
  EOF
77
78
  end
@@ -26,7 +26,7 @@ module Milkode
26
26
 
27
27
  DEFAULT_WIDE_MATCH_RANGE = 7 # 未指定時のワイド検索範囲
28
28
 
29
- def initialize(path, params, query)
29
+ def initialize(path, params, query, suburl)
30
30
  @path = path
31
31
  @params = params
32
32
  @q = query
@@ -35,6 +35,8 @@ module Milkode
35
35
  @line = params[:line].to_i
36
36
  @is_onematch = params[:onematch] == 'on'
37
37
  @is_sensitive = params[:sensitive] == 'on'
38
+ @suburl = suburl
39
+ @homeurl = @suburl + "/home/"
38
40
 
39
41
  @searcher_fuzzy_gotoline = nil
40
42
 
@@ -165,7 +167,7 @@ EOF
165
167
  tmpp = @params.clone
166
168
  tmpp[:query] = conv_query.query_string
167
169
  url = Mkurl.new(@path, tmpp).inherit_query_shead
168
- result << "<dt class='result-file'>#{img_icon('document-new-4.png')}<a href='#{url}'>#{conv_query.query_string}</a></dt>"
170
+ result << "<dt class='result-file'>#{img_icon('document-new-4.png', @suburl)}<a href='#{url}'>#{conv_query.query_string}</a></dt>"
169
171
  end
170
172
 
171
173
  if recommended_wide_match_range?
@@ -184,7 +186,7 @@ EOF
184
186
  tmpp[:query] = conv_query.query_string
185
187
  url = Mkurl.new(@path, tmpp).inherit_query_shead
186
188
 
187
- result << "<dt class='result-file'>#{img_icon('document-new-4.png')}<a href='#{url}'>#{conv_query.query_string}</a> (<a href='#{w0_url}'>w:0</a>, <a href='#{w1_url}'>w:1</a>)</dt>"
189
+ result << "<dt class='result-file'>#{img_icon('document-new-4.png', @suburl)}<a href='#{url}'>#{conv_query.query_string}</a> (<a href='#{w0_url}'>w:0</a>, <a href='#{w1_url}'>w:1</a>)</dt>"
188
190
  end
189
191
 
190
192
  if recommended_fpath_or_packages?
@@ -192,7 +194,7 @@ EOF
192
194
  tmpp = @params.clone
193
195
  tmpp[:query] = conv_query.query_string
194
196
  url = Mkurl.new(@path, tmpp).inherit_query_shead
195
- result << "<dt class='result-file'>#{img_icon('document-new-4.png')}<a href='#{url}'>#{conv_query.query_string}</a></dt>"
197
+ result << "<dt class='result-file'>#{img_icon('document-new-4.png', @suburl)}<a href='#{url}'>#{conv_query.query_string}</a></dt>"
196
198
  end
197
199
 
198
200
  unless result.empty?
@@ -308,7 +310,7 @@ EOF
308
310
  coderay.col_limit(COL_LIMIT)
309
311
  coderay.set_range(first_index..last_index)
310
312
 
311
- url = "/home/" + record_link(record)
313
+ url = @homeurl + record_link(record)
312
314
 
313
315
  <<EOS
314
316
  <dt class='result-record'><a href='#{url + "#n#{coderay.highlight_lines[0]}"}'>#{Util::relative_path record.shortpath, @path}</a>#{result_refinement(record)}</dt>
@@ -332,7 +334,7 @@ EOS
332
334
 
333
335
  def result_record(record)
334
336
  <<EOS
335
- <dt class='result-file'>#{file_or_dirimg(true)}<a href='#{"/home/" + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
337
+ <dt class='result-file'>#{file_or_dirimg(true, @suburl)}<a href='#{@homeurl + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
336
338
  EOS
337
339
  end
338
340
 
@@ -343,11 +345,11 @@ EOS
343
345
  def refinement_suffix(suffix)
344
346
  params = @params.clone
345
347
  params[:query] = [@params[:query], "s:#{suffix}"].join(" ")
346
- "/home/" + Mkurl.new(@path, params).inherit_query_shead
348
+ @homeurl + Mkurl.new(@path, params).inherit_query_shead
347
349
  end
348
350
 
349
351
  def refinement_directory(path)
350
- "/home/" + Mkurl.new(path, @params).inherit_query_shead
352
+ @homeurl + Mkurl.new(path, @params).inherit_query_shead
351
353
  end
352
354
 
353
355
  def result_refinement(record)
@@ -17,10 +17,12 @@ module Milkode
17
17
 
18
18
  DISP_NUM = 100 # 1ページの表示数
19
19
 
20
- def initialize(path, params, query)
21
- @path = path
22
- @params = params
23
- @q = query
20
+ def initialize(path, params, query, suburl)
21
+ @path = path
22
+ @params = params
23
+ @q = query
24
+ @suburl = suburl
25
+ @homeurl = @suburl + "/home/"
24
26
 
25
27
  @offset = params[:offset].to_i
26
28
 
@@ -77,7 +79,7 @@ EOF
77
79
 
78
80
  def result_record(record)
79
81
  <<EOS
80
- <dt class='result-file'>#{file_or_dirimg(true)}<a href='#{"/home/" + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
82
+ <dt class='result-file'>#{file_or_dirimg(true, @suburl)}<a href='#{@homeurl + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
81
83
  EOS
82
84
  end
83
85
 
@@ -22,12 +22,14 @@ module Milkode
22
22
  NTH = 3 # 表示範囲
23
23
  COL_LIMIT = 200 # 1行の桁制限
24
24
 
25
- def initialize(path, params, query)
26
- @path = path
27
- @params = params
28
- @q = query
29
- @page = params[:page].to_i || 0
30
- @offset = params[:offset].to_i
25
+ def initialize(path, params, query, suburl)
26
+ @path = path
27
+ @params = params
28
+ @q = query
29
+ @page = params[:page].to_i || 0
30
+ @offset = params[:offset].to_i
31
+ @suburl = suburl
32
+ @homeurl = @suburl + "/home/"
31
33
 
32
34
  # 検索クエリを解析
33
35
  gotolines = Util::parse_gotoline(@q.gotolines + @q.keywords)
@@ -84,7 +86,7 @@ EOF
84
86
  end
85
87
 
86
88
  def directjump_url
87
- path = File.join('/home', @match_records[0].record.shortpath)
89
+ path = @homeurl + @match_records[0].record.shortpath
88
90
  lineno = "#n#{@gotoline[1]}"
89
91
  Mkurl.new(path, @params).inherit_query_shead + lineno
90
92
  end
@@ -124,7 +126,7 @@ EOF
124
126
  coderay.col_limit(COL_LIMIT)
125
127
  coderay.set_range(first_index..last_index)
126
128
 
127
- url = "/home/" + record_link(record)
129
+ url = @homeurl + record_link(record)
128
130
 
129
131
  <<EOS
130
132
  <dt class='result-record'><a href='#{url + "#n#{coderay.highlight_lines[0]}"}'>#{Util::relative_path record.shortpath, @path}</a></dt>
@@ -146,12 +148,6 @@ EOS
146
148
  "<ul><li>#{content}</li></ul>\n"
147
149
  end
148
150
 
149
- def result_record(record)
150
- <<EOS
151
- <dt class='result-file'>#{file_or_dirimg(true)}<a href='#{"/home/" + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
152
- EOS
153
- end
154
-
155
151
  def record_link(record)
156
152
  Mkurl.new(record.shortpath, @params).inherit_query_shead
157
153
  end
@@ -23,12 +23,14 @@ module Milkode
23
23
  MATH_FILE_DISP = 3 # マッチファイルの最大表示数
24
24
  MATH_FILE_LIMIT = MATH_FILE_DISP + 1 # マッチファイルの検索リミット数
25
25
 
26
- def initialize(path, params, query)
27
- @path = path
28
- @params = params
29
- @q = query
30
- @page = params[:page].to_i || 0
31
- @offset = params[:offset].to_i
26
+ def initialize(path, params, query, suburl)
27
+ @path = path
28
+ @params = params
29
+ @q = query
30
+ @page = params[:page].to_i || 0
31
+ @offset = params[:offset].to_i
32
+ @suburl = suburl
33
+ @homeurl = @suburl + "/home/"
32
34
 
33
35
  # 検索クエリを解析
34
36
  @gotolines = Util::parse_gotoline(@q.keywords)
@@ -113,7 +115,7 @@ EOF
113
115
  coderay.col_limit(COL_LIMIT)
114
116
  coderay.set_range(first_index..last_index)
115
117
 
116
- url = "/home/" + record_link(record)
118
+ url = @homeurl + record_link(record)
117
119
 
118
120
  <<EOS
119
121
  <dt class='result-record'><a href='#{url + "#n#{coderay.highlight_lines[0]}"}'>#{Util::relative_path record.shortpath, @path}</a></dt>
@@ -135,12 +137,6 @@ EOS
135
137
  "<ul><li>#{content}</li></ul>\n"
136
138
  end
137
139
 
138
- def result_record(record)
139
- <<EOS
140
- <dt class='result-file'>#{file_or_dirimg(true)}<a href='#{"/home/" + record_link(record)}'>#{Util::relative_path record.shortpath, @path}</a></dt>
141
- EOS
142
- end
143
-
144
140
  def record_link(record) #
145
141
  Mkurl.new(record.shortpath, @params).inherit_query_shead
146
142
  end
@@ -1,5 +1,5 @@
1
1
  .header
2
2
  %h1
3
- <a href="/"><img src=#{@setting.header_icon} alt="milkode-icon-mini" border="0" height="75px"/></a>
3
+ <a href="#{url_for '/'}"><img src=#{url_for @setting.header_icon} alt="milkode-icon-mini" border="0" height="75px"/></a>
4
4
  #{@setting.header_title} &nbsp;
5
5
  = create_headmenu(@path, params, defined?(flistpath) ? flistpath : '')
@@ -71,6 +71,6 @@
71
71
  /proj1/file.rb:1 /proj2/file.c:2 <span class="comment"># 空白で区切れば複数個渡せる</span>
72
72
 
73
73
  %li ファイルモードで行番号をクリックすると取得可能
74
- <img src="/images/milkode-directpath-copy.gif" />
74
+ <img src="#{url_for '/images/milkode-directpath-copy.gif'}" />
75
75
 
76
76
  %li <a href="https://github.com/ongaeshi/emacs-milkode">emacs-milkode</a>との連携にも使う
@@ -6,27 +6,27 @@
6
6
  %head
7
7
  %meta(charset='utf-8')
8
8
  %title= [@title, @setting.home_title].compact.join(' - ')
9
- %link(rel="shortcut icon" href="#{@setting.favicon}")
10
- %link(rel="stylesheet" href="/css/bootstrap.min.css" type="text/css" media="all")
11
- %link(rel="stylesheet" href="/css/bootstrap-responsive.min.css" type="text/css" media="all")
12
- %link(rel="stylesheet" href="/css/milkode.css" type="text/css" media="all")
13
- %link(rel="stylesheet" href="/css/smoothness/jquery-ui-1.8.22.custom.css" type="text/css" media="all")
14
- %link(rel="stylesheet" href="/css/jquery.multiselect.css" type="text/css" media="all")
15
- %link(rel="stylesheet" href="/css/jquery.multiselect.filter.css" type="text/css" media="all")
9
+ %link(rel="shortcut icon" href="#{url_for @setting.favicon}")
10
+ %link(rel="stylesheet" href="#{url_for '/css/bootstrap.min.css'}" type="text/css" media="all")
11
+ %link(rel="stylesheet" href="#{url_for '/css/bootstrap-responsive.min.css'}" type="text/css" media="all")
12
+ %link(rel="stylesheet" href="#{url_for '/css/milkode.css'}" type="text/css" media="all")
13
+ %link(rel="stylesheet" href="#{url_for '/css/smoothness/jquery-ui-1.8.22.custom.css'}" type="text/css" media="all")
14
+ %link(rel="stylesheet" href="#{url_for '/css/jquery.multiselect.css'}" type="text/css" media="all")
15
+ %link(rel="stylesheet" href="#{url_for '/css/jquery.multiselect.filter.css'}" type="text/css" media="all")
16
16
 
17
17
  %body
18
18
  .container#toppage
19
19
  .row
20
20
  .span10.offset2
21
- %h1 <a href="/"><img src=#{@setting.home_icon} alt="milkode-icon" border="0" height="135px" /></a> #{@setting.home_title} <font class="version">#{@version}</font>
21
+ %h1 <a href="#{url_for '/'}"><img src=#{url_for @setting.home_icon} alt="milkode-icon" border="0" height="135px" /></a> #{@setting.home_title} <font class="version">#{@version}</font>
22
22
 
23
23
  .row
24
24
  .span10.offset2
25
25
  .form
26
- %form(method="post" action="/search")
26
+ %form(method="post" action="#{url_for '/search'}")
27
27
  %input(name="query" type="text" style="width: 419px;")
28
28
  %input(type="submit" value="検索")
29
- %input(name='pathname' type='hidden' value='/home')
29
+ %input(name='pathname' type='hidden' value='#{url_for '/home'}')
30
30
 
31
31
  .row
32
32
  .span4.offset4
@@ -52,16 +52,16 @@
52
52
  .row
53
53
  .span4.offset4
54
54
  .footer
55
- <a href="/home">#{@package_num}</a>のパッケージ<br>
56
- <a href="/home?query=f:*">#{@file_num}</a>のファイル<br>
57
- <a href="/help">ヘルプ</a>
55
+ <a href="#{url_for '/home'}">#{@package_num}</a>のパッケージ<br>
56
+ <a href="#{url_for '/home?query=f:*'}">#{@file_num}</a>のファイル<br>
57
+ <a href="#{url_for '/help'}">ヘルプ</a>
58
58
  = @setting.about_milkode
59
59
 
60
- %script(type='text/javascript' src='/js/jquery-1.7.2.min.js')
61
- %script(type='text/javascript' src='/js/jquery-ui-1.8.22.custom.min.js')
62
- %script(type='text/javascript' src='/js/jquery.multiselect.min.js')
63
- %script(type='text/javascript' src='/js/jquery.multiselect.filter.min.js')
64
- %script(type='text/javascript' src='/js/milkode.js')
60
+ %script(type='text/javascript' src='#{url_for '/js/jquery-1.7.2.min.js'}')
61
+ %script(type='text/javascript' src='#{url_for '/js/jquery-ui-1.8.22.custom.min.js'}')
62
+ %script(type='text/javascript' src='#{url_for '/js/jquery.multiselect.min.js'}')
63
+ %script(type='text/javascript' src='#{url_for '/js/jquery.multiselect.filter.min.js'}')
64
+ %script(type='text/javascript' src='#{url_for '/js/milkode.js'}')
65
65
 
66
66
 
67
67
 
@@ -3,7 +3,7 @@
3
3
  .content
4
4
  .info-package-content
5
5
 
6
- %h1 <a href="/home">全体</a>の統計
6
+ %h1 <a href="#{url_for '/home'}">全体</a>の統計
7
7
 
8
8
  ~ @summary_content
9
9
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  .content
4
4
  .info-package-content
5
- %h1 <a href="/info"><img src="/images/info-big.png"/></a> <a href="/home/#{@path}">#{@path}</a>の統計
5
+ %h1 <a href="#{url_for '/info'}"><img src="#{url_for '/images/info-big.png'}"/></a> <a href="#{url_for "/home/#{@path}"}">#{@path}</a>の統計
6
6
 
7
7
  %h2 基本情報
8
8
  ~ @summary_content
@@ -4,24 +4,24 @@
4
4
  %head
5
5
  %meta(charset='utf-8')
6
6
  %title= [@title, @setting.home_title].compact.join(' - ')
7
- %link(rel="shortcut icon" href="#{@setting.favicon}")
8
- %link(rel="stylesheet" href="/css/bootstrap.min.css" type="text/css" media="all")
9
- %link(rel="stylesheet" href="/css/bootstrap-responsive.min.css" type="text/css" media="all")
10
- %link(rel="stylesheet" href="/css/milkode.css" type="text/css" media="all")
11
- %link(rel="stylesheet" href="/css/coderay.css" type="text/css" media="all")
12
- %link(rel="stylesheet" href="/css/coderay-patch.css" type="text/css" media="all")
13
- %link(rel="stylesheet" href="/css/smoothness/jquery-ui-1.8.22.custom.css" type="text/css" media="all")
14
- %link(rel="stylesheet" href="/css/jquery.multiselect.css" type="text/css" media="all")
15
- %link(rel="stylesheet" href="/css/jquery.multiselect.filter.css" type="text/css" media="all")
7
+ %link(rel="shortcut icon" href="#{url_for @setting.favicon}")
8
+ %link(rel="stylesheet" href="#{url_for '/css/bootstrap.min.css'}" type="text/css" media="all")
9
+ %link(rel="stylesheet" href="#{url_for '/css/bootstrap-responsive.min.css'}" type="text/css" media="all")
10
+ %link(rel="stylesheet" href="#{url_for '/css/milkode.css'}" type="text/css" media="all")
11
+ %link(rel="stylesheet" href="#{url_for '/css/coderay.css'}" type="text/css" media="all")
12
+ %link(rel="stylesheet" href="#{url_for '/css/coderay-patch.css'}" type="text/css" media="all")
13
+ %link(rel="stylesheet" href="#{url_for '/css/smoothness/jquery-ui-1.8.22.custom.css'}" type="text/css" media="all")
14
+ %link(rel="stylesheet" href="#{url_for '/css/jquery.multiselect.css'}" type="text/css" media="all")
15
+ %link(rel="stylesheet" href="#{url_for '/css/jquery.multiselect.filter.css'}" type="text/css" media="all")
16
16
 
17
17
  %body
18
18
  .container-fluid#mainpage
19
19
  != yield
20
- %script(type='text/javascript' src='/js/jquery-1.7.2.min.js')
21
- %script(type='text/javascript' src='/js/jquery-ui-1.8.22.custom.min.js')
22
- %script(type='text/javascript' src='/js/jquery.multiselect.min.js')
23
- %script(type='text/javascript' src='/js/jquery.multiselect.filter.min.js')
24
- %script(type='text/javascript' src='/js/bootstrap.min.js')
25
- %script(type='text/javascript' src='/js/milkode.js')
20
+ %script(type='text/javascript' src='#{url_for '/js/jquery-1.7.2.min.js'}')
21
+ %script(type='text/javascript' src='#{url_for '/js/jquery-ui-1.8.22.custom.min.js'}')
22
+ %script(type='text/javascript' src='#{url_for '/js/jquery.multiselect.min.js'}')
23
+ %script(type='text/javascript' src='#{url_for '/js/jquery.multiselect.filter.min.js'}')
24
+ %script(type='text/javascript' src='#{url_for '/js/bootstrap.min.js'}')
25
+ %script(type='text/javascript' src='#{url_for '/js/milkode.js'}')
26
26
 
27
27
  -# GoogleAnalyticsを使いたい場合はここにコードを挿入して下さい。
@@ -77,13 +77,13 @@ function favorite_list(id) {
77
77
 
78
78
  function update_package(package_name) {
79
79
  // click button
80
- $("#updateModal .modal-body").html("<h4>更新中... <img src='/images/waiting.gif'/></h4>");
80
+ $("#updateModal .modal-body").html("<h4>更新中... <img src='" + '<%= url_for "/images/waiting.gif" %>' + "'/></h4>");
81
81
  $("#updateCancel").addClass("hide");
82
82
  $("#updateOk").button('loading').off('click');
83
83
 
84
84
  // update end
85
85
  $.post(
86
- '/command',
86
+ '<%= url_for "/command" %>',
87
87
  {
88
88
  kind: 'update',
89
89
  name: package_name
@@ -191,7 +191,7 @@ $(document).ready(function() {
191
191
 
192
192
  // ajax通信
193
193
  $.post(
194
- '/command',
194
+ '<%= url_for "/command" %>',
195
195
  {
196
196
  kind: 'favorite',
197
197
  name: pname,
@@ -255,7 +255,7 @@ label.ui-corner-all {
255
255
  .star {
256
256
  text-indent: -5000px;
257
257
  display: block;
258
- background: transparent url(/images/milkode-star.png) 20px;
258
+ background: transparent url(<%= url_for "/images/milkode-star.png" %>) 20px;
259
259
  height: 20px;
260
260
  width: 20px;
261
261
  }
@@ -3,7 +3,7 @@
3
3
  function set_pathname() {
4
4
  document.searchform.pathname.value = location.pathname;
5
5
  }
6
- %form(name="searchform" action="/search" method="post")
6
+ %form(name="searchform" action="#{url_for '/search'}" method="post")
7
7
  %p
8
8
  %input#query(name="query" size="70" type="text" style="width: 419px;"){:value => params[:query]}
9
9
  %input#search(type="submit" name="search" value="検索" onclick="set_pathname()")
@@ -151,12 +151,13 @@ EOF
151
151
  end
152
152
 
153
153
  desc "web", "Startup web interface"
154
- option :db, :default => Milkode::CLI_Cdweb::select_dbdir
155
- option :host, :default => '127.0.0.1', :aliases => '-o'
156
- option :port, :default => 9292, :aliases => '-p'
157
- option :server, :default => 'thin', :aliases => '-s'
158
- option :no_browser, :type => :boolean, :default => false, :aliases => '-n', :type => :boolean, :desc => 'Do not launch browser.'
159
154
  option :customize, :type => :boolean, :desc => 'Create customize file.'
155
+ option :db, :default => Milkode::CLI_Cdweb::select_dbdir, :desc => 'Database dir.'
156
+ option :no_browser, :type => :boolean, :default => false, :aliases => '-n', :type => :boolean, :desc => 'Do not launch browser.'
157
+ option :host, :default => '127.0.0.1', :aliases => '-o', :desc => 'Listen on HOST.'
158
+ option :port, :default => 9292, :aliases => '-p', :desc => 'Use PORT.'
159
+ option :server, :default => 'thin', :aliases => '-s', :desc => 'Use SERVER.'
160
+ option :url, :aliases => '-u', :type => :string, :desc => 'Relative URL. (Default: "/")'
160
161
  def web
161
162
  opts = {
162
163
  :environment => ENV['RACK_ENV'] || "development",
@@ -169,6 +170,7 @@ EOF
169
170
  :server => options[:server],
170
171
  :LaunchBrowser => !options[:no_browser],
171
172
  :DbDir => options[:db],
173
+ :url => options[:url],
172
174
  }
173
175
  opts[:customize] = options[:customize]
174
176
  # cdstk(opts[:DbDir]).assert_compatible
@@ -195,6 +197,7 @@ EOF
195
197
  end
196
198
 
197
199
  desc "files", "Display package files"
200
+ option :all, :type => :boolean, :aliases => '-a', :desc => 'Display all package files.'
198
201
  option :relative, :type => :boolean, :aliases => '-r', :desc => "Display relative path."
199
202
  def files(*args)
200
203
  cdstk.files(args, options)
@@ -235,7 +235,7 @@ module Milkode
235
235
  # 指定したコマンドが存在するか?
236
236
  def exist_command?(command)
237
237
  begin
238
- Open3.capture3("type #{command}")[2].exited?
238
+ Open3.capture3('type', command)[2].exited?
239
239
  rescue Errno::ENOENT
240
240
  false
241
241
  end
@@ -209,7 +209,7 @@ EOF
209
209
  findGrep.searchAndPrint2(stdout, records)
210
210
  else
211
211
  # レコード数が多い時は"-e grep"で検索
212
- if Util::exist_command?('grep') && Util::exist_command?('xargs')
212
+ if Util::exist_command?('cat') && Util::exist_command?('grep') && Util::exist_command?('xargs')
213
213
  $stderr.puts "Number of records is large. Use auto external tool (gmilk -e grep)"
214
214
  search_external_tool(arguments, option, records, 'grep -n', 'grep')
215
215
  else
@@ -0,0 +1,64 @@
1
+ module Sinatra
2
+ module UrlForHelper
3
+ # Construct a link to +url_fragment+, which should be given relative to
4
+ # the base of this Sinatra app. The mode should be either
5
+ # <code>:path_only</code>, which will generate an absolute path within
6
+ # the current domain (the default), or <code>:full</code>, which will
7
+ # include the site name and port number. (The latter is typically
8
+ # necessary for links in RSS feeds.) Example usage:
9
+ #
10
+ # url_for "/" # Returns "/myapp/"
11
+ # url_for "/foo" # Returns "/myapp/foo"
12
+ # url_for "/foo", :full # Returns "http://example.com/myapp/foo"
13
+ #
14
+ # You can also pass in a hash of options, which will be appended to the
15
+ # URL as escaped parameters, like so:
16
+ #
17
+ # url_for "/", :x => "y" # Returns "/myapp/?x=y"
18
+ # url_for "/foo", :x => "M&Ms" # Returns "/myapp/foo?x=M%26Ms"
19
+ #
20
+ # You can also specify the mode:
21
+ #
22
+ # url_for "/foo", :full, :x => "y" # Returns "http://example.com/myapp/foo?x=y"
23
+ #
24
+ #--
25
+ # See README.rdoc for a list of some of the people who helped me clean
26
+ # up earlier versions of this code.
27
+ def url_for url_fragment, mode=nil, options = nil
28
+ if mode.is_a? Hash
29
+ options = mode
30
+ mode = nil
31
+ end
32
+
33
+ if mode.nil?
34
+ mode = :path_only
35
+ end
36
+
37
+ mode = mode.to_sym unless mode.is_a? Symbol
38
+ optstring = nil
39
+
40
+ if options.is_a? Hash
41
+ optstring = '?' + options.map { |k,v| "#{k}=#{URI.escape(v.to_s, /[^#{URI::PATTERN::UNRESERVED}]/)}" }.join('&')
42
+ end
43
+
44
+ case mode
45
+ when :path_only
46
+ base = request.script_name
47
+ when :full
48
+ scheme = request.scheme
49
+ if (scheme == 'http' && request.port == 80 ||
50
+ scheme == 'https' && request.port == 443)
51
+ port = ""
52
+ else
53
+ port = ":#{request.port}"
54
+ end
55
+ base = "#{scheme}://#{request.host}#{port}#{request.script_name}"
56
+ else
57
+ raise TypeError, "Unknown url_for mode #{mode.inspect}"
58
+ end
59
+ "#{base}#{url_fragment}#{optstring}"
60
+ end
61
+ end
62
+
63
+ helpers UrlForHelper
64
+ end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{milkode}
8
- s.version = "1.0.2"
8
+ s.version = "1.1.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{2013-06-08}
12
+ s.date = %q{2013-06-26}
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"]
@@ -61,7 +61,6 @@ Gem::Specification.new do |s|
61
61
  "lib/milkode/cdweb/public/css/coderay.css",
62
62
  "lib/milkode/cdweb/public/css/jquery.multiselect.css",
63
63
  "lib/milkode/cdweb/public/css/jquery.multiselect.filter.css",
64
- "lib/milkode/cdweb/public/css/milkode.css",
65
64
  "lib/milkode/cdweb/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png",
66
65
  "lib/milkode/cdweb/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png",
67
66
  "lib/milkode/cdweb/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png",
@@ -97,7 +96,6 @@ Gem::Specification.new do |s|
97
96
  "lib/milkode/cdweb/public/js/jquery-ui-1.8.22.custom.min.js",
98
97
  "lib/milkode/cdweb/public/js/jquery.multiselect.filter.min.js",
99
98
  "lib/milkode/cdweb/public/js/jquery.multiselect.min.js",
100
- "lib/milkode/cdweb/public/js/milkode.js",
101
99
  "lib/milkode/cdweb/views/error.haml",
102
100
  "lib/milkode/cdweb/views/filelist.haml",
103
101
  "lib/milkode/cdweb/views/header_menu.haml",
@@ -106,6 +104,8 @@ Gem::Specification.new do |s|
106
104
  "lib/milkode/cdweb/views/info_home.haml",
107
105
  "lib/milkode/cdweb/views/info_package.haml",
108
106
  "lib/milkode/cdweb/views/layout.haml",
107
+ "lib/milkode/cdweb/views/milkode.js",
108
+ "lib/milkode/cdweb/views/milkode.scss",
109
109
  "lib/milkode/cdweb/views/packages.haml",
110
110
  "lib/milkode/cdweb/views/search.haml",
111
111
  "lib/milkode/cdweb/views/search_form.haml",
@@ -133,6 +133,7 @@ Gem::Specification.new do |s|
133
133
  "lib/milkode/grep/fast_gotoline.rb",
134
134
  "lib/milkode/grep/findgrep.rb",
135
135
  "lib/milkode/grep/findgrep_option.rb",
136
+ "lib/sinatra/url_for.rb",
136
137
  "milkode.gemspec",
137
138
  "test/data/.gitignore",
138
139
  "test/data/.gitignore.sjis",
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease: false
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 2
10
- version: 1.0.2
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - ongaeshi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-06-08 00:00:00 +09:00
18
+ date: 2013-06-26 00:00:00 +09:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -328,7 +328,6 @@ files:
328
328
  - lib/milkode/cdweb/public/css/coderay.css
329
329
  - lib/milkode/cdweb/public/css/jquery.multiselect.css
330
330
  - lib/milkode/cdweb/public/css/jquery.multiselect.filter.css
331
- - lib/milkode/cdweb/public/css/milkode.css
332
331
  - lib/milkode/cdweb/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
333
332
  - lib/milkode/cdweb/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
334
333
  - lib/milkode/cdweb/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
@@ -364,7 +363,6 @@ files:
364
363
  - lib/milkode/cdweb/public/js/jquery-ui-1.8.22.custom.min.js
365
364
  - lib/milkode/cdweb/public/js/jquery.multiselect.filter.min.js
366
365
  - lib/milkode/cdweb/public/js/jquery.multiselect.min.js
367
- - lib/milkode/cdweb/public/js/milkode.js
368
366
  - lib/milkode/cdweb/views/error.haml
369
367
  - lib/milkode/cdweb/views/filelist.haml
370
368
  - lib/milkode/cdweb/views/header_menu.haml
@@ -373,6 +371,8 @@ files:
373
371
  - lib/milkode/cdweb/views/info_home.haml
374
372
  - lib/milkode/cdweb/views/info_package.haml
375
373
  - lib/milkode/cdweb/views/layout.haml
374
+ - lib/milkode/cdweb/views/milkode.js
375
+ - lib/milkode/cdweb/views/milkode.scss
376
376
  - lib/milkode/cdweb/views/packages.haml
377
377
  - lib/milkode/cdweb/views/search.haml
378
378
  - lib/milkode/cdweb/views/search_form.haml
@@ -400,6 +400,7 @@ files:
400
400
  - lib/milkode/grep/fast_gotoline.rb
401
401
  - lib/milkode/grep/findgrep.rb
402
402
  - lib/milkode/grep/findgrep_option.rb
403
+ - lib/sinatra/url_for.rb
403
404
  - milkode.gemspec
404
405
  - test/data/.gitignore
405
406
  - test/data/.gitignore.sjis