coherent 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +2 -1
- data/VERSION +1 -1
- data/app_generators/coherent/templates/distil.yml.erb +10 -0
- data/app_generators/coherent/templates/src/pages/index.html.erb +2 -10
- data/bin/coherent +13 -1
- data/coherent.gemspec +13 -6
- data/lib/distilery/coherent-asset-filter.rb +65 -0
- data/lib/distilery/nib-file.rb +13 -0
- data/lib/distilery/nib-task.rb +83 -0
- data/lib/distilery.rb +5 -0
- metadata +17 -3
data/Rakefile
CHANGED
@@ -12,7 +12,8 @@ begin
|
|
12
12
|
gem.authors = ["Jeff Watkins"]
|
13
13
|
gem.files= Dir['lib/**/*', 'app_generators/**/*', 'generators/**/*', 'bin/*', '[A-Za-z]*', 'vendor/**/*']
|
14
14
|
gem.files.reject! { |f| File.directory?(f) }
|
15
|
-
gem.add_dependency('distil', '>= 0.8.
|
15
|
+
gem.add_dependency('distil', '>= 0.8.4')
|
16
|
+
gem.add_dependency('rubigen', '>= 1.5.2')
|
16
17
|
# gem.extensions= ['vendor/extconf.rb']
|
17
18
|
|
18
19
|
# gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
@@ -2,10 +2,20 @@ name: <%=name%>
|
|
2
2
|
version: 1.0.0
|
3
3
|
notice: src/NOTICE
|
4
4
|
output folder: build/res/latest
|
5
|
+
|
6
|
+
# When copying or linking to the source in the build, remove this folder prefix
|
7
|
+
# before copying or linking.
|
5
8
|
remove prefix: src
|
9
|
+
|
10
|
+
# Need to include the coherent extensions for Distil.
|
11
|
+
distilery: coherent
|
12
|
+
|
13
|
+
# Set up external projects.
|
6
14
|
external projects:
|
7
15
|
ext/coherent: http://coherent.googlecode.com/svn/trunk
|
8
16
|
|
17
|
+
|
18
|
+
|
9
19
|
# This is the main target for your application. This target will yield optimised
|
10
20
|
# CSS and Javascript files for all of your assets. In addition, it will emit
|
11
21
|
# uncompressed and debug versions which are useful during development.
|
@@ -10,16 +10,8 @@
|
|
10
10
|
</head>
|
11
11
|
<body>
|
12
12
|
<script>
|
13
|
-
|
14
|
-
|
15
|
-
});
|
16
|
-
var d= viewController.loadView();
|
17
|
-
|
18
|
-
function viewLoaded(whatever)
|
19
|
-
{
|
20
|
-
document.body.appendChild(viewController.view().node);
|
21
|
-
}
|
22
|
-
d.addCallback(viewLoaded);
|
13
|
+
coherent.Application.shared.setAssetLocation("res/latest");
|
14
|
+
coherent.Application.shared.setMainBundle("<%=nib_name%>");
|
23
15
|
</script>
|
24
16
|
</body>
|
25
17
|
</html>
|
data/bin/coherent
CHANGED
@@ -13,7 +13,8 @@ def find_app_root
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
|
16
|
+
case ARGV[0]
|
17
|
+
when 'app'
|
17
18
|
# pull off app "command"
|
18
19
|
ARGV.shift
|
19
20
|
|
@@ -23,6 +24,17 @@ if ('app'==ARGV[0])
|
|
23
24
|
RubiGen::Base.append_sources source
|
24
25
|
|
25
26
|
RubiGen::Scripts::Generate.new.run(ARGV, :generator => 'coherent')
|
27
|
+
when 'demo'
|
28
|
+
# pull off app "command"
|
29
|
+
ARGV.shift
|
30
|
+
|
31
|
+
source = RubiGen::PathSource.new(:application,
|
32
|
+
File.join(File.dirname(__FILE__), "../demo_generators"))
|
33
|
+
RubiGen::Base.reset_sources
|
34
|
+
RubiGen::Base.append_sources source
|
35
|
+
|
36
|
+
generator= ARGV.shift
|
37
|
+
RubiGen::Scripts::Generate.new.run(ARGV, :generator => generator)
|
26
38
|
else
|
27
39
|
APP_ROOT= find_app_root || Dir.pwd
|
28
40
|
|
data/coherent.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{coherent}
|
8
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Jeff Watkins"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2010-01-17}
|
13
13
|
s.default_executable = %q{coherent}
|
14
14
|
s.description = %q{Tools for building Coherent application or modules.}
|
15
15
|
s.email = %q{jeff@metrocat.org}
|
@@ -54,7 +54,11 @@ Gem::Specification.new do |s|
|
|
54
54
|
"generators/nib/templates/@name@.css.erb",
|
55
55
|
"generators/nib/templates/@name@.html.erb",
|
56
56
|
"generators/nib/templates/@name@.jsnib.erb",
|
57
|
-
"lib/coherent.rb"
|
57
|
+
"lib/coherent.rb",
|
58
|
+
"lib/distilery.rb",
|
59
|
+
"lib/distilery/coherent-asset-filter.rb",
|
60
|
+
"lib/distilery/nib-file.rb",
|
61
|
+
"lib/distilery/nib-task.rb"
|
58
62
|
]
|
59
63
|
s.homepage = %q{http://coherentjs.org}
|
60
64
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -67,12 +71,15 @@ Gem::Specification.new do |s|
|
|
67
71
|
s.specification_version = 3
|
68
72
|
|
69
73
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
70
|
-
s.add_runtime_dependency(%q<distil>, [">= 0.8.
|
74
|
+
s.add_runtime_dependency(%q<distil>, [">= 0.8.4"])
|
75
|
+
s.add_runtime_dependency(%q<rubigen>, [">= 1.5.2"])
|
71
76
|
else
|
72
|
-
s.add_dependency(%q<distil>, [">= 0.8.
|
77
|
+
s.add_dependency(%q<distil>, [">= 0.8.4"])
|
78
|
+
s.add_dependency(%q<rubigen>, [">= 1.5.2"])
|
73
79
|
end
|
74
80
|
else
|
75
|
-
s.add_dependency(%q<distil>, [">= 0.8.
|
81
|
+
s.add_dependency(%q<distil>, [">= 0.8.4"])
|
82
|
+
s.add_dependency(%q<rubigen>, [">= 1.5.2"])
|
76
83
|
end
|
77
84
|
end
|
78
85
|
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require "#{$script_dir}/filters/file-reference-filter"
|
2
|
+
|
3
|
+
$include_regex= /NIB\.asset\(['"]([^)]+)['"]\)/
|
4
|
+
$include_regex_old= /INC\(['"]([^)]+)['"]\)/
|
5
|
+
|
6
|
+
class CoherentAssetFilter < FileReferenceFilter
|
7
|
+
|
8
|
+
def handles_file(file)
|
9
|
+
return ["js"].include?(file.content_type)
|
10
|
+
end
|
11
|
+
|
12
|
+
def preprocess_content(file, content)
|
13
|
+
content= content.split("\n")
|
14
|
+
|
15
|
+
line_num=0
|
16
|
+
|
17
|
+
content.each { |line|
|
18
|
+
|
19
|
+
line_num+=1
|
20
|
+
|
21
|
+
line.gsub!($include_regex) { |match|
|
22
|
+
|
23
|
+
import_file= File.expand_path(File.join(file.parent_folder, $1))
|
24
|
+
|
25
|
+
if (!File.exists?(import_file))
|
26
|
+
file.error "Missing import file: #{$1}", line_num
|
27
|
+
"NIB.asset('#{$1}')"
|
28
|
+
else
|
29
|
+
asset= SourceFile.from_path(import_file)
|
30
|
+
file.add_asset(asset);
|
31
|
+
if (file.can_embed_as_content(asset))
|
32
|
+
"NIB.asset('#{file_reference(asset)}','#{content_reference(asset)}')"
|
33
|
+
else
|
34
|
+
"NIB.asset('#{file_reference(asset)}')"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
}
|
39
|
+
|
40
|
+
line.gsub!($include_regex_old) { |match|
|
41
|
+
|
42
|
+
import_file= File.expand_path(File.join(file.parent_folder, $1))
|
43
|
+
|
44
|
+
if (!File.exists?(import_file))
|
45
|
+
file.error "Missing import file: #{$1}", line_num
|
46
|
+
"INC('#{$1}')"
|
47
|
+
else
|
48
|
+
asset= SourceFile.from_path(import_file)
|
49
|
+
file.add_asset(asset);
|
50
|
+
if (file.can_embed_as_content(asset))
|
51
|
+
"INC('#{file_reference(asset)}','#{content_reference(asset)}')"
|
52
|
+
else
|
53
|
+
"INC('#{file_reference(asset)}')"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
}
|
58
|
+
|
59
|
+
}
|
60
|
+
|
61
|
+
content.join("\n")
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
require "#{$script_dir}/tasks/multiple-output-task.rb"
|
2
|
+
require "#{$script_dir}/tasks/javascript-task.rb"
|
3
|
+
|
4
|
+
class NibTask < MultipleOutputTask
|
5
|
+
|
6
|
+
def self.task_name
|
7
|
+
"jsnib"
|
8
|
+
end
|
9
|
+
|
10
|
+
def source_type
|
11
|
+
"js"
|
12
|
+
end
|
13
|
+
|
14
|
+
def output_type
|
15
|
+
"jsnib"
|
16
|
+
end
|
17
|
+
|
18
|
+
# NibTask handles files that end in .jsnib
|
19
|
+
def handles_file?(file_name)
|
20
|
+
"#{file_name}"[/\.jsnib$/]
|
21
|
+
end
|
22
|
+
|
23
|
+
def validate_file(file)
|
24
|
+
|
25
|
+
return if (!File.exists?($lint_command))
|
26
|
+
|
27
|
+
tmp= Tempfile.new("jsl.conf")
|
28
|
+
|
29
|
+
conf_files= [ "jsl.conf",
|
30
|
+
"#{ENV['HOME']}/.jsl.conf",
|
31
|
+
@options.jsl_conf
|
32
|
+
]
|
33
|
+
|
34
|
+
jsl_conf= conf_files.find { |f| File.exists?(f) }
|
35
|
+
|
36
|
+
tmp << File.read(jsl_conf)
|
37
|
+
tmp << "\n"
|
38
|
+
|
39
|
+
external_projects.each { |project|
|
40
|
+
tmp << "+include #{project["include"]}\n"
|
41
|
+
}
|
42
|
+
|
43
|
+
file.dependencies.each { |f|
|
44
|
+
tmp << "+process #{f}\n"
|
45
|
+
}
|
46
|
+
|
47
|
+
tmp << "+process #{file}\n"
|
48
|
+
|
49
|
+
tmp.close()
|
50
|
+
|
51
|
+
command= "#{$lint_command} -nologo -nofilelisting -conf #{tmp.path}"
|
52
|
+
|
53
|
+
stdin, stdout, stderr= Open3.popen3(command)
|
54
|
+
stdin.close
|
55
|
+
output= stdout.read
|
56
|
+
errors= stderr.read
|
57
|
+
|
58
|
+
tmp.delete
|
59
|
+
|
60
|
+
output= output.split("\n")
|
61
|
+
summary= output.pop
|
62
|
+
match= summary.match(/(\d+)\s+error\(s\), (\d+)\s+warning\(s\)/)
|
63
|
+
if (match)
|
64
|
+
@target.error_count+= match[1].to_i
|
65
|
+
@target.warning_count+= match[2].to_i
|
66
|
+
end
|
67
|
+
|
68
|
+
output= output.join("\n")
|
69
|
+
|
70
|
+
if (!output.empty?)
|
71
|
+
puts output
|
72
|
+
puts
|
73
|
+
end
|
74
|
+
|
75
|
+
end
|
76
|
+
|
77
|
+
def validate_files
|
78
|
+
@included_files.each { |f|
|
79
|
+
validate_file(f)
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
data/lib/distilery.rb
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coherent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeff Watkins
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2010-01-17 00:00:00 -08:00
|
13
13
|
default_executable: coherent
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,17 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.8.
|
23
|
+
version: 0.8.4
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: rubigen
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.5.2
|
24
34
|
version:
|
25
35
|
description: Tools for building Coherent application or modules.
|
26
36
|
email: jeff@metrocat.org
|
@@ -68,6 +78,10 @@ files:
|
|
68
78
|
- generators/nib/templates/@name@.html.erb
|
69
79
|
- generators/nib/templates/@name@.jsnib.erb
|
70
80
|
- lib/coherent.rb
|
81
|
+
- lib/distilery.rb
|
82
|
+
- lib/distilery/coherent-asset-filter.rb
|
83
|
+
- lib/distilery/nib-file.rb
|
84
|
+
- lib/distilery/nib-task.rb
|
71
85
|
has_rdoc: true
|
72
86
|
homepage: http://coherentjs.org
|
73
87
|
licenses: []
|