coherent 0.6.10 → 0.6.11

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.10
1
+ 0.6.11
@@ -37,6 +37,21 @@
37
37
  */
38
38
  hashDidChange: function(hashValue)
39
39
  {
40
- }
40
+ },
41
+
42
+ pageTitleForString: function(string)
43
+ {
44
+ return string;
45
+ },
46
+
47
+ historyStateForViewController: function(viewController)
48
+ {
49
+ return null;
50
+ },
51
+
52
+ viewControllerForPath: function(path, historyState)
53
+ {
54
+ return null;
55
+ }
41
56
 
42
57
  });
data/bin/coherent CHANGED
@@ -5,17 +5,30 @@ require 'rubigen'
5
5
 
6
6
  require 'rubigen/scripts/generate'
7
7
 
8
+ BUILD_FILE= 'Buildfile'
9
+
8
10
  def find_project_file(dir=nil)
11
+ cwd= Dir.pwd
9
12
  dir ||= Dir.pwd
10
-
11
13
  while dir.length > 1
12
- files= Dir.glob(File.join(dir, '*.jsproj'))
13
- if (1==files.length)
14
- return files.first
14
+ build_file= File.join(dir, BUILD_FILE)
15
+ return build_file if File.exists?(build_file)
16
+
17
+ projects= Dir.glob(File.join(dir, "*.jsproj"))
18
+ return from_file(projects.first) if 1==projects.size
19
+
20
+ unless 0==projects.size
21
+ puts "More than one candidate for Project:"
22
+ projects.each { |e|
23
+ puts " #{e}"
24
+ }
25
+ exit 1
15
26
  end
16
- dir = File.dirname(dir)
27
+
28
+ dir= File.dirname(dir)
17
29
  end
18
30
 
31
+ nil
19
32
  end
20
33
 
21
34
 
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.6.10"
8
+ s.version = "0.6.11"
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{2010-11-27}
12
+ s.date = %q{2011-02-05}
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}
@@ -94,7 +94,7 @@ Gem::Specification.new do |s|
94
94
  s.homepage = %q{http://coherentjs.org}
95
95
  s.rdoc_options = ["--charset=UTF-8"]
96
96
  s.require_paths = ["lib"]
97
- s.rubygems_version = %q{1.3.7}
97
+ s.rubygems_version = %q{1.4.2}
98
98
  s.summary = %q{Tools for building Coherent application or modules.}
99
99
  s.test_files = [
100
100
  "test/helper.rb",
@@ -110,7 +110,6 @@ Gem::Specification.new do |s|
110
110
  ]
111
111
 
112
112
  if s.respond_to? :specification_version then
113
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
114
113
  s.specification_version = 3
115
114
 
116
115
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
@@ -1,4 +1,5 @@
1
1
  require "#{File.dirname(__FILE__)}/../../lib/coherent"
2
+ require "yaml"
2
3
 
3
4
  class ClassGenerator < CoherentBaseGenerator
4
5
 
@@ -12,9 +13,21 @@ class ClassGenerator < CoherentBaseGenerator
12
13
  full_name= args.shift
13
14
  parts= full_name.split(".")
14
15
 
15
- @namespace= parts[0..-2].join(".")
16
+
16
17
  @name= parts[-1]
17
18
  @full_name= full_name
19
+ @namespace= parts[0..-2].join(".")
20
+
21
+ if @namespace.empty?
22
+ @target_folder = "src/js"
23
+ project = YAML::load_file(PROJECT_FILE)
24
+ if project["export"].is_a?(String)
25
+ @namespace = project["export"]
26
+ @full_name= [@namespace, @name].join(".")
27
+ end
28
+ else
29
+ @target_folder = "src/js/#{namespace.gsub(".", "/")}"
30
+ end
18
31
 
19
32
  extract_options
20
33
  end
@@ -22,7 +35,7 @@ class ClassGenerator < CoherentBaseGenerator
22
35
  def manifest
23
36
  record do |m|
24
37
 
25
- copy_template_folder m, "src/js/#{@namespace.gsub(".", "/")}"
38
+ copy_template_folder m, @target_folder
26
39
 
27
40
  end
28
41
  end
@@ -2,9 +2,12 @@
2
2
 
3
3
 
4
4
  /**
5
-
5
+ class <%=full_name%>
6
+
7
+ This is a good place to document your class.
6
8
  */
7
- <%= namespace.empty? ? "var " : ""%><%=full_name%>= Class.create(coherent.KVO, {
9
+ <%= namespace.empty? ? "var " : ""%><%=full_name%>= Class.create(coherent.KVO,
10
+ {
8
11
 
9
12
  sampleProperty: function()
10
13
  {
@@ -10,7 +10,10 @@ class NibGenerator < CoherentBaseGenerator
10
10
  super
11
11
  usage if args.empty?
12
12
  @name = args.shift
13
-
13
+ if (@name.as_identifier != @name)
14
+ puts "Create NIB: name must be a valid identifier: #{@name} => #{@name.as_identifier}"
15
+ @name= @name.as_identifier
16
+ end
14
17
  extract_options
15
18
  end
16
19
 
@@ -2,16 +2,15 @@
2
2
 
3
3
  NIB('<%=name%>', {
4
4
 
5
- '<%=name%>': VIEW({
6
- ':root': coherent.View({
7
- // Set up necessary bindings and configuration information for your
8
- // root view here.
9
- })
10
- }),
5
+ <%= name %> : VIEW({
6
+ ':root': coherent.View({
7
+ // Set up necessary bindings and configuration information for your
8
+ // root view here.
9
+ })
10
+ }),
11
11
 
12
12
  // Connect your views or controllers to the owning ViewController
13
- 'owner':
14
- {
13
+ owner: {
15
14
  // Connect the main view for the ViewController, without this association
16
15
  // the ViewController won't be able to display your view.
17
16
  view: REF('<%=name%>')
data/lib/coherent.rb CHANGED
@@ -1,5 +1,25 @@
1
1
  require "active_support"
2
2
 
3
+ class String
4
+ def as_identifier
5
+ word= self.to_s.gsub(/(?:^|\W)(.)/) { $1.upcase }
6
+ # word[0..0].downcase + word[1..-1]
7
+ end
8
+ def starts_with?(prefix)
9
+ prefix = prefix.to_s
10
+ self[0, prefix.length] == prefix
11
+ end
12
+ def remove_indent
13
+ str= sub(/^\n*/, "")
14
+ match= str.match(/(^\s+)/)
15
+ return str unless match
16
+ str.gsub(/^#{match[1]}/, '').strip
17
+ end
18
+ def indent(str)
19
+ self.gsub(/^/, str)
20
+ end
21
+ end
22
+
3
23
  class CoherentBaseGenerator < RubiGen::Base
4
24
 
5
25
  def copy_template_folder(m, path=nil)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coherent
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
5
- prerelease: false
4
+ hash: 17
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 10
10
- version: 0.6.10
9
+ - 11
10
+ version: 0.6.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jeff Watkins
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-27 00:00:00 -08:00
18
+ date: 2011-02-05 00:00:00 -08:00
19
19
  default_executable: coherent
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -171,7 +171,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
171
171
  requirements: []
172
172
 
173
173
  rubyforge_project:
174
- rubygems_version: 1.3.7
174
+ rubygems_version: 1.4.2
175
175
  signing_key:
176
176
  specification_version: 3
177
177
  summary: Tools for building Coherent application or modules.