coherent 0.2.0 → 0.2.1
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/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: []
|