ichiban 1.1.0 → 1.2.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.
- checksums.yaml +4 -4
- data/lib/ichiban/command.rb +11 -2
- data/lib/ichiban/manual_compiler.rb +27 -0
- data/lib/ichiban/nav_helper.rb +5 -39
- data/lib/ichiban.rb +1 -1
- metadata +3 -3
- data/lib/ichiban/bundle.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a67d27e89bd72f4afd96687d4bdd0497433fc4c4
|
4
|
+
data.tar.gz: 725e54db4c392ce2437c7499aa6674733f7abbf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b95a07d33bb48d4c6f8b36272d011c661e5253dc578935573fade28f8dc28f26784fe5da7ace00b3cb369942e9c38cbbacd8c94369c24bb760e2cc383ae7efeb
|
7
|
+
data.tar.gz: ec539fd3c4224f33112b85fdff5efe33d4e535d58c53783a6f9dfae15f7055e5e3aa25b2345e96b788bf45a8ef03df725286da3c3eebeede684e644d6da24e18
|
data/lib/ichiban/command.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
module Ichiban
|
2
2
|
class Command
|
3
|
-
def initialize(args)
|
3
|
+
def initialize(args, dev = false)
|
4
4
|
@task = args.shift
|
5
5
|
@args = args
|
6
|
+
@dev = dev
|
6
7
|
end
|
7
8
|
|
8
9
|
def print_usage
|
@@ -10,6 +11,7 @@ module Ichiban
|
|
10
11
|
"\nUsage: ichiban [command]\n" +
|
11
12
|
"Available commands: \n" +
|
12
13
|
" watch\n" +
|
14
|
+
" compile [-a] [path]\n" +
|
13
15
|
" new [path]\n" +
|
14
16
|
" help\n\n" +
|
15
17
|
"https://github.com/jarrett/ichiban\n\n"
|
@@ -20,8 +22,15 @@ module Ichiban
|
|
20
22
|
case @task
|
21
23
|
when 'watch'
|
22
24
|
Ichiban.project_root = Dir.getwd
|
23
|
-
Ichiban.load_bundle
|
24
25
|
Ichiban::Watcher.new.start
|
26
|
+
when 'compile'
|
27
|
+
Ichiban.project_root = Dir.getwd
|
28
|
+
compiler = Ichiban::ManualCompiler.new
|
29
|
+
if @args.first == '-a'
|
30
|
+
compiler.all
|
31
|
+
else
|
32
|
+
compiler.paths @args
|
33
|
+
end
|
25
34
|
when 'new'
|
26
35
|
Ichiban::ProjectGenerator.new(
|
27
36
|
File.expand_path(@args[0])
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Ichiban
|
2
|
+
class ManualCompiler
|
3
|
+
def all
|
4
|
+
paths(
|
5
|
+
Dir.glob(File.join(Ichiban.project_root, 'html', '**', '*')) +
|
6
|
+
Dir.glob(File.join(Ichiban.project_root, 'assets', '**', '*')) +
|
7
|
+
Dir.glob(File.join(Ichiban.project_root, 'scripts', '**', '*')) +
|
8
|
+
Dir.glob(File.join(Ichiban.project_root, 'webserver', '**', '*'))
|
9
|
+
)
|
10
|
+
end
|
11
|
+
|
12
|
+
def paths(paths_to_compile)
|
13
|
+
paths_to_compile.each do |path|
|
14
|
+
unless path.start_with? Ichiban.project_root
|
15
|
+
path = File.join(Ichiban.project_root, path)
|
16
|
+
end
|
17
|
+
begin
|
18
|
+
if project_file = Ichiban::ProjectFile.from_abs(path)
|
19
|
+
project_file.update
|
20
|
+
end
|
21
|
+
rescue Exception => exc
|
22
|
+
Ichiban.logger.exception(exc)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
data/lib/ichiban/nav_helper.rb
CHANGED
@@ -2,6 +2,9 @@ module Ichiban
|
|
2
2
|
module NavHelper
|
3
3
|
|
4
4
|
def nav(items, options = {})
|
5
|
+
unless items.is_a?(Array)
|
6
|
+
raise "Expected first parameter of NavHelper#nav to be an Array, but got: #{items.inspect}"
|
7
|
+
end
|
5
8
|
Nav.new(items, options, self).to_html
|
6
9
|
end
|
7
10
|
|
@@ -28,15 +31,7 @@ module Ichiban
|
|
28
31
|
def current_path_starts_with?(path)
|
29
32
|
@ctx.path_with_slashes(@ctx.current_path).start_with?(@ctx.path_with_slashes(path))
|
30
33
|
end
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
#def merge_classes(current_classes, added_classes)
|
35
|
-
# current_classes = current_classes.split(/ +/)
|
36
|
-
# added_classes = added_classes.split(/ +/)
|
37
|
-
# (current_classes + added_classes).uniq.join(' ')
|
38
|
-
#end
|
39
|
-
|
34
|
+
|
40
35
|
# Recursive. Checks whether any item in the menu, or any item in any of its descendant
|
41
36
|
# menus, has a path that *starts with* the current path. E.g. if a menu or its descendants
|
42
37
|
# have a link to '/a/b/c/', and we're at '/a/b/c/d/e/f/', then this method returns true.
|
@@ -50,26 +45,11 @@ module Ichiban
|
|
50
45
|
# If an item has a sub-menu, then that menu must be the third element of the array.
|
51
46
|
# (The format is [text, path, sub_menu, li_options].) So we recursively search the
|
52
47
|
# descendant menu(s) of this item.
|
53
|
-
menu_matches_current_path?(
|
48
|
+
menu_matches_current_path?(item[2])
|
54
49
|
end
|
55
50
|
end.nil?
|
56
51
|
end
|
57
52
|
|
58
|
-
# Recursive
|
59
|
-
#def sub_menu_contains_current_path?(items)
|
60
|
-
# !items.detect do |item|
|
61
|
-
# if current_path?(item[1])
|
62
|
-
# true
|
63
|
-
# elsif item[2].is_a?(Array)
|
64
|
-
# sub_menu_contains_current_path?(item[2])
|
65
|
-
# elsif item[3].is_a?(Array)
|
66
|
-
# sub_menu_contains_current_path?(item[3])
|
67
|
-
# else
|
68
|
-
# false
|
69
|
-
# end
|
70
|
-
# end.nil?
|
71
|
-
#end
|
72
|
-
|
73
53
|
# Recursive
|
74
54
|
def ul(items, depth)
|
75
55
|
# If we're in the outermost menu, add any passed-in <ul> attributes
|
@@ -152,20 +132,6 @@ module Ichiban
|
|
152
132
|
li_inner_html
|
153
133
|
end
|
154
134
|
|
155
|
-
#lis << @ctx.content_tag('li', li_attrs) do
|
156
|
-
# in_sub_path = (path != '/' and @options[:consider_sub_paths] and @ctx.path_with_slashes(@ctx.current_path).start_with?(@ctx.path_with_slashes(path)))
|
157
|
-
# if current_path?(path)
|
158
|
-
# li_inner_html = @ctx.content_tag('span', text, 'class' => 'selected')
|
159
|
-
# elsif (sub_menu and sub_menu_contains_current_path?(sub_menu)) or in_sub_path
|
160
|
-
# li_inner_html = @ctx.link_to(text, path, 'class' => 'ancestor_of_selected')
|
161
|
-
# else
|
162
|
-
# li_inner_html = @ctx.link_to(text, path)
|
163
|
-
# end
|
164
|
-
# if sub_menu and (current_path?(path) or sub_menu_contains_current_path?(sub_menu) or in_sub_path)
|
165
|
-
# li_inner_html << ul(sub_menu, depth + 1)
|
166
|
-
# end
|
167
|
-
# li_inner_html
|
168
|
-
#end
|
169
135
|
lis
|
170
136
|
end
|
171
137
|
end
|
data/lib/ichiban.rb
CHANGED
@@ -18,7 +18,6 @@ require 'therubyracer'
|
|
18
18
|
require 'source_map'
|
19
19
|
|
20
20
|
# Ichiban files. Order matters!
|
21
|
-
require 'ichiban/bundle'
|
22
21
|
require 'ichiban/config'
|
23
22
|
require 'ichiban/logger'
|
24
23
|
require 'ichiban/command'
|
@@ -26,6 +25,7 @@ require 'ichiban/project_generator'
|
|
26
25
|
require 'ichiban/dependencies'
|
27
26
|
require 'ichiban/loader'
|
28
27
|
require 'ichiban/watcher'
|
28
|
+
require 'ichiban/manual_compiler'
|
29
29
|
require 'ichiban/deleter'
|
30
30
|
require 'ichiban/project_file'
|
31
31
|
require 'ichiban/helpers'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ichiban
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jarrett Colby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ejs
|
@@ -331,7 +331,6 @@ files:
|
|
331
331
|
- empty_project/webserver/htaccess.txt
|
332
332
|
- lib/ichiban.rb
|
333
333
|
- lib/ichiban/asset_compiler.rb
|
334
|
-
- lib/ichiban/bundle.rb
|
335
334
|
- lib/ichiban/command.rb
|
336
335
|
- lib/ichiban/config.rb
|
337
336
|
- lib/ichiban/deleter.rb
|
@@ -342,6 +341,7 @@ files:
|
|
342
341
|
- lib/ichiban/js_compiler.rb
|
343
342
|
- lib/ichiban/loader.rb
|
344
343
|
- lib/ichiban/logger.rb
|
344
|
+
- lib/ichiban/manual_compiler.rb
|
345
345
|
- lib/ichiban/markdown.rb
|
346
346
|
- lib/ichiban/nav_helper.rb
|
347
347
|
- lib/ichiban/project_file.rb
|