sudojs-rails 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd1f53f3cbe93a5268b1931531c6ae22010c5e1f
4
- data.tar.gz: f364419e8c9ead7b7d3e456b2e8c701d8b84b190
3
+ metadata.gz: dbb644c09ab21d3500df93cbede3023bacfacfba
4
+ data.tar.gz: 6e0fe9702b729f16025cd3b23be6e580271a86d6
5
5
  SHA512:
6
- metadata.gz: eeb81d3cccac9e2b1979b9e851a1701fc77cf937114f5f411444b9dcffde1be3d6a93e2f486390f4c7874d50e676a0930978a24a640edfbf2f433cd71ed12f63
7
- data.tar.gz: 05a9e8187fdf283fa3348e086c1ffa80348d18ed4f74f727afff104b9772b1278236cb0eb449f43a26e86ebd9f5658a9d54d1a06b4ad5764ca6f84318dce2f02
6
+ metadata.gz: 48ac70d1f915348c625b572da7eab797407dbc1bddbf6c497c534c9c8c626411e6baf40008ea14a625ec9180c390b1ea64a755b3ae015744585864650e871858
7
+ data.tar.gz: 500391e74e1dead14ba65d771c311c8e1bbfcdbc399f01b0235614327564e2e40dead59ace1547619f26794fb0a6fbe2f563f8025394eb35b628fde53341c8dd
data/.DS_Store CHANGED
Binary file
data/README.md CHANGED
@@ -79,17 +79,16 @@ Description:
79
79
  Install sudo.js along with it's particular directory hierarchy.
80
80
 
81
81
  Example:
82
- rails g sudojs:install namespace [which_sudo] [html_extension] [js_extension] [css_extension] [--skip-css=true/false]
82
+ rails g sudojs:install [html_extension] [js_extension] [css_extension] [--skip-css=true/false]
83
83
 
84
- The only mandatory argument is the initial `namespace`.
84
+ Two namespaces, 'page' and 'lib', will be automagically created. The 'models' and 'templates'
85
+ Containers will be appended to the page namespace, and 'lib' is used to house Class definitions
86
+ by convention.
85
87
 
86
- The install generator uses these optional arguments to expand the values in the sudo_js.yml file:
87
- 1. `which_sudo` => which version of sudo.js are you loading? As sudo.js can be rebuilt into any number
88
- of custom configurations, indicate here what name should be placed into the application manifest.
89
- Defaults to 'sudo-x' if omitted.
90
- 2. `html_extension` => Use the full extension, i.e. `.haml`. defaults to `.erb`.
91
- 3. `js_extension` => defaults to `.js` pass `.js.coffee` if you are of the coffee persuasion.
92
- 4. `css_extension` => defaults to `.css`. Sass for example would need `.css.scss`
88
+ The install generator uses these options to expand the values in the sudo_js.yml file:
89
+ 1. `--html_extension` => Use the full extension, i.e. `.haml`. defaults to `.erb`.
90
+ 2. `--js_extension` => defaults to `.js` pass `.coffee` if you are of the coffee persuasion.
91
+ 3. `--css_extension` => defaults to `.css`. Sass for example would need `.scss`
93
92
 
94
93
  NOTE: to skip any and all generating of css files pass the option `--skip-css=true` when invoking the install generator.
95
94
  Obviously, you could then leave the `css_extension` argument out. The option defaults to false.
@@ -99,14 +98,15 @@ Example:
99
98
  assets/
100
99
  stylesheets/
101
100
  manifests/
102
- application.css
101
+ application.*
103
102
  javascripts/
104
- application/
105
- yourNamespace.js
106
- model.js
107
103
  manifests/
108
- application.js
104
+ application.*
105
+ models/
106
+ base.*
109
107
  views/
108
+ application/
109
+ page.*
110
110
  config/
111
111
  sudo_js.yml
112
112
 
@@ -52,41 +52,50 @@ module Sudojs
52
52
  # the arguments vary in the templates for class types
53
53
  # also we can make some assumptions about paths
54
54
  case @parent
55
- when '_.Base', '_.Container'
55
+ when '_.Base'
56
56
  @args = 'data'
57
57
  @js_path = @js_views_path
58
58
  @js_req = 'views'
59
59
  skip_css = true
60
+ namespace = 'lib'
61
+ when '_.Container'
62
+ @args = 'data'
63
+ @js_path = @js_views_path
64
+ @js_req = 'containers'
65
+ skip_css = true
66
+ namespace = 'lib.containers'
60
67
  when '_.Model'
61
68
  @args = 'data'
62
69
  @js_path = @js_model_path
63
70
  @js_req = 'models'
64
71
  skip_css = true
72
+ namespace = 'lib.models'
65
73
  when '_.View', '_.ViewController', 'DataView'
66
74
  @args = 'el, data'
67
75
  @js_path = @js_views_path
68
76
  @js_req = 'views'
77
+ namespace = 'lib.views'
69
78
  else
70
79
  #default to unknown args and views path with css
71
80
  @args = '/* args */'
72
81
  @js_path = @js_views_path
73
82
  @js_req = 'views'
83
+ namespace = 'lib'
74
84
  end
75
85
 
76
86
  end
77
87
 
78
88
  # expand the template to <destination>
79
89
  def copy_class_template
90
+ @path_to_object = namespace
80
91
  if @is_application
81
92
  # a more definitive indicator
82
93
  js_path = @js_app_path
83
94
  css_path = @css_app_path
84
- @path_to_object = namespace
85
95
  else
86
96
  # the user passed option takes precedence
87
97
  js_path = "#{@js_dir || @js_path}/#{@c_name}"
88
98
  css_path = "#{@css_views_path}/#{@c_name}"
89
- @path_to_object = [namespace, '.', @c_camel].join('')
90
99
  # make sure the directory is present (create if not)
91
100
  unless skip_css?
92
101
  ensure_cname_dir(js_path, css_path)
@@ -147,7 +156,7 @@ module Sudojs
147
156
  end
148
157
 
149
158
  def modify_view_if_exists
150
- filename = "app/views/#{@c_name}/#{@a_name}.html#{html_extension}"
159
+ filename = "app/views/#{@c_name}/#{@a_name}#{html_extension}"
151
160
  if File.exist? filename
152
161
  # TODO other pre-processors may need entries here
153
162
  if js_extension == '.js.coffee'
@@ -6,14 +6,6 @@ module Sudojs
6
6
 
7
7
  CFG = YAML.load_file('config/sudo_js.yml') unless defined? CFG
8
8
 
9
- def namespace
10
- CFG['js_namespace']
11
- end
12
-
13
- def which_sudo
14
- CFG['which_sudo']
15
- end
16
-
17
9
  def html_extension
18
10
  CFG['html_extension']
19
11
  end
@@ -2,17 +2,16 @@ Description:
2
2
  Install sudo.js along with it's particular directory hierarchy.
3
3
 
4
4
  Example:
5
- rails g sudojs:install namespace [which_sudo] [html_extension] [js_extension] [css_extension] [--skip-css=true/false]
5
+ rails g sudojs:install [html_extension] [js_extension] [css_extension] [--skip-css=true/false]
6
6
 
7
- The only mandatory argument is the initial `namespace`.
7
+ Two namespaces, 'page' and 'lib', will be automagically created. The 'models' and 'templates'
8
+ Containers will be appended to the page namespace, and 'lib' is used to house Class definitions
9
+ by convention.
8
10
 
9
- The install generator uses these optional arguments to expand the values in the sudo_js.yml file:
10
- 1. `which_sudo` => which version of sudo.js are you loading? As sudo.js can be rebuilt into any number
11
- of custom configurations, indicate here what name should be placed into the application manifest.
12
- Defaults to 'sudo-x' if omitted.
13
- 2. `html_extension` => Use the full extension, i.e. `.haml`. defaults to `.erb`.
14
- 3. `js_extension` => defaults to `.js` pass `.js.coffee` if you are of the coffee persuasion.
15
- 4. `css_extension` => defaults to `.css`. Sass for example would need `.css.scss`
11
+ The install generator uses these options to expand the values in the sudo_js.yml file:
12
+ 1. `--html_extension` => Use the full extension, i.e. `--html_extension=.haml`. Defaults to `.erb`.
13
+ 2. `--js_extension` => Defaults to `.js` pass `--js_extension=.coffee` if you are of the coffee persuasion.
14
+ 3. `--css_extension` => Defaults to `.css`. For Sass you would pass `-css_extension=.scss`
16
15
 
17
16
  NOTE: to skip any and all generating of css files pass the option `--skip-css=true` when invoking the install generator.
18
17
  Obviously, you could then leave the `css_extension` argument out. The option defaults to false.
@@ -30,6 +29,6 @@ Example:
30
29
  base.*
31
30
  views/
32
31
  application/
33
- yourNamespace.*
32
+ page.*
34
33
  config/
35
34
  sudo_js.yml
@@ -1,14 +1,17 @@
1
1
  module Sudojs
2
2
  module Generators
3
- class InstallGenerator < Rails::Generators::NamedBase
3
+ class InstallGenerator < Rails::Generators::Base
4
4
  source_root File.expand_path('../templates', __FILE__)
5
5
 
6
- argument :which_sudo_arg, :type => :string, :default => 'sudo-x'
7
- argument :html_extension_arg, :type => :string, :default => '.erb'
8
- argument :js_extension_arg, :type => :string, :default => '.js'
9
- argument :css_extension_arg, :type => :string, :default => '.css'
6
+ class_option :html_extension, :type => :string, :aliases => '--html_extension', :default => '.erb',
7
+ :desc => 'Which html extension to use'
10
8
 
11
- class_option :skip_css_opt, :type => :boolean, :aliases => "--skip-css", :default => false,
9
+ class_option :js_extension, :type => :string, :default => '.js', :aliases => '--js_extension',
10
+ :desc => 'Which js extension to use'
11
+
12
+ class_option :css_extension, :type => :string, :default => '.css', :aliases => '--css_extension',
13
+ :desc => 'Which css extension to use'
14
+ class_option :skip_css, :type => :boolean, :aliases => '--skip-css', :default => false,
12
15
  :desc => 'Skip the generation of any css files along with js'
13
16
 
14
17
  def create_yaml
@@ -40,19 +43,17 @@ module Sudojs
40
43
  end
41
44
 
42
45
  def place_install_files
43
- template 'app_manifest.js.erb', 'app/assets/javascripts/manifests/application.js'
46
+ copy_file 'app_manifest.js', 'app/assets/javascripts/manifests/application.js'
44
47
  unless options[:skip_css]
45
- template 'app_manifest.css.erb', 'app/assets/stylesheets/manifests/application.css'
48
+ copy_file 'app_manifest.css', 'app/assets/stylesheets/manifests/application.css'
46
49
  end
47
50
 
48
51
  # TODO templates for other javascript pre-processors
49
- if js_extension_arg == '.js.coffee'
50
- template 'namespace.coffee.erb', "app/assets/javascripts/views/application/#{name}.js.coffee"
51
- template 'model.coffee.erb', 'app/assets/javascripts/models/base.js.coffee'
52
+ if options[:js_extension] == '.coffee'
53
+ copy_file 'namespace.coffee', "app/assets/javascripts/views/application/page.js.coffee"
52
54
  else
53
55
  # for now any other js flavor gets the baseline .js
54
- template 'namespace.js.erb', "app/assets/javascripts/views/application/#{name}#{js_extension_arg}"
55
- template 'model.js.erb', "app/assets/javascripts/models/base#{js_extension_arg}"
56
+ copy_file 'namespace.js', "app/assets/javascripts/views/application/page.js#{options[:js_extension] if options[:js_extension] != '.js'}"
56
57
  end
57
58
 
58
59
  end
@@ -1,6 +1,6 @@
1
1
  // This is a manifest file that'll be compiled into application.js, which will include all the files
2
2
  // listed below.
3
3
  //
4
- //= require sudojs/<%= which_sudo_arg %>
5
- //= require views/application/<%= name %>
6
- //= require models/base
4
+ //= require sudojs/zepto
5
+ //= require sudojs/sudo
6
+ //= require views/application/page
@@ -0,0 +1,8 @@
1
+ # Define the 2 top-level app namespaces.
2
+ window.lib = {}
3
+
4
+ window.page =
5
+ descriptors: [],
6
+ models: new _.Container(),
7
+ templates: new _.Container()
8
+
@@ -0,0 +1,8 @@
1
+ // Define the 2 top-level app namespaces.
2
+ window.lib = {};
3
+
4
+ window.page = {
5
+ descriptors: [],
6
+ models: new _.Container(),
7
+ templates: new _.Container()
8
+ };
@@ -1,17 +1,11 @@
1
- # What is the applications top level namespace?
2
- js_namespace: <%= name %>
3
-
4
- # sudo.js with templating or without?
5
- which_sudo: <%= which_sudo_arg %>
6
-
7
1
  # erb or haml or ...?
8
- html_extension: <%= html_extension_arg %>
2
+ html_extension: .html<%= options[:html_extension] if options[:html_extension] != '.html' %>
9
3
 
10
- # coffee?
11
- js_extension: <%= js_extension_arg %>
4
+ # coffee/...?
5
+ js_extension: .js<%= options[:js_extension] if options[:js_extension] != '.js'%>
12
6
 
13
7
  # create (S)css files too?
14
8
  skip_css: <%= @skip_css %>
15
9
 
16
- # sass?
17
- css_extension: <%= css_extension_arg %>
10
+ # sass/less/...?
11
+ css_extension: .css<%= options[:css_extension] if options[:css_extension] != '.css'%>
@@ -1,3 +1,3 @@
1
1
  module Sudojs
2
- VERSION = '0.4.6'
2
+ VERSION = '0.4.7'
3
3
  end
data/sudojs-rails.gemspec CHANGED
@@ -17,6 +17,4 @@ Gem::Specification.new do |gem|
17
17
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
18
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
19
  gem.require_paths = ["lib"]
20
-
21
- gem.add_development_dependency "rspec", "~> 2.6"
22
20
  end
@@ -339,13 +339,18 @@ sudo.Model.prototype.unsets = function unsets(ary) {
339
339
  // ##Container Class Object
340
340
  //
341
341
  // A container is any object that can both contain other objects and
342
- // itself be contained
342
+ // itself be contained.
343
+ //
344
+ // `param` {Array|Object} 'arg'. Optional array or hash
345
+ // of child objects which the Container will add as child objects
346
+ // via `addChildren`
343
347
  //
344
348
  // `constructor`
345
- sudo.Container = function() {
349
+ sudo.Container = function(arg) {
346
350
  sudo.Base.call(this);
347
351
  this.children = [];
348
352
  this.childNames = {};
353
+ if(arg) this.addChildren(arg);
349
354
  };
350
355
  // Container is a subclass of sudo.Base
351
356
  sudo.inherit(sudo.Base, sudo.Container);
@@ -369,6 +374,30 @@ sudo.Container.prototype.addChild = function addChild(child, name) {
369
374
  if('addedToParent' in child) child.addedToParent(this);
370
375
  return this;
371
376
  };
377
+ // ###addChildren
378
+ // Allows for multiple children to be added to this Container by passing
379
+ // either an Array or an Object literal.
380
+ //
381
+ // see `addChild`
382
+ //
383
+ // `param` {Array|Object} `arg`. An array of children to add or an
384
+ // Object literal in the form {name: child}
385
+ // `returns` {Object} `this`
386
+ sudo.Container.prototype.addChildren = function addChildren(arg) {
387
+ var i, keys;
388
+ // Array?
389
+ if(Array.isArray(arg)) {
390
+ for (i = 0; i < arg.length; i++) {
391
+ this.addChild(arg[i]);
392
+ }
393
+ } else {
394
+ keys = Object.keys(arg);
395
+ for (i = 0; i < keys.length; i++) {
396
+ this.addChild(arg[keys[i]] , keys[i]);
397
+ }
398
+ }
399
+ return this;
400
+ };
372
401
  // ###bubble
373
402
  // By default, `bubble` returns the current view's parent (if it has one)
374
403
  //
@@ -428,6 +457,8 @@ sudo.Container.prototype.removeChild = function removeChild(arg) {
428
457
  // Remove all children, name references and adjust indexes accordingly.
429
458
  // This method calls removeFromParent as each child may have overridden logic there.
430
459
  //
460
+ // see `removeChild`
461
+ //
431
462
  // `returns` {object} `this`
432
463
  sudo.Container.prototype.removeChildren = function removeChildren() {
433
464
  while(this.children.length) {
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sudojs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - robrobbins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-05 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: rspec
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ~>
18
- - !ruby/object:Gem::Version
19
- version: '2.6'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ~>
25
- - !ruby/object:Gem::Version
26
- version: '2.6'
11
+ date: 2013-07-23 00:00:00.000000000 Z
12
+ dependencies: []
27
13
  description: Install the latest versions of sudo.js and provide generators for fast
28
14
  and easy use.
29
15
  email:
@@ -47,12 +33,10 @@ files:
47
33
  - lib/generators/sudojs/helpers.rb
48
34
  - lib/generators/sudojs/install/USAGE
49
35
  - lib/generators/sudojs/install/install_generator.rb
50
- - lib/generators/sudojs/install/templates/app_manifest.css.erb
51
- - lib/generators/sudojs/install/templates/app_manifest.js.erb
52
- - lib/generators/sudojs/install/templates/model.coffee.erb
53
- - lib/generators/sudojs/install/templates/model.js.erb
54
- - lib/generators/sudojs/install/templates/namespace.coffee.erb
55
- - lib/generators/sudojs/install/templates/namespace.js.erb
36
+ - lib/generators/sudojs/install/templates/app_manifest.css
37
+ - lib/generators/sudojs/install/templates/app_manifest.js
38
+ - lib/generators/sudojs/install/templates/namespace.coffee
39
+ - lib/generators/sudojs/install/templates/namespace.js
56
40
  - lib/generators/sudojs/install/templates/sudo_js.erb.yml
57
41
  - lib/sudojs-rails.rb
58
42
  - lib/sudojs/engine.rb
@@ -1,5 +0,0 @@
1
- # Global model is a sudo.Observable
2
- class <%= name %>.Base extends _.Model
3
- constructor: (data) ->
4
- super data
5
- $.extend @, _.extensions.observable
@@ -1,7 +0,0 @@
1
- // Global model is a sudo.Observable
2
- <%= name %>.Base = function(data) {
3
- this.construct(data);
4
- $.extend(this, _.extensions.observable);
5
- };
6
- // `private`
7
- <%= name %>.Base.prototype = Object.create(_.Model.prototype);
@@ -1,8 +0,0 @@
1
- # Define the top-level app namespace as defined in the sudo_js yaml file.
2
-
3
- # The `descriptors` array is a global necessity that solves the issue of
4
- # child objects being parsed on a _partial before their parent ViewControllers
5
- # (who are declared on a containing view file)
6
- window.<%= name %> =
7
- descriptors: []
8
-
@@ -1,8 +0,0 @@
1
- // Define the top-level app namespace as defined in the sudo_js yaml file.
2
-
3
- // The `descriptors` array is a global necessity that solves the issue of
4
- // child objects being parsed on a _partial before their parent ViewControllers
5
- // (who are declared on a containing view file)
6
- window.<%= name %> = {
7
- descriptors: []
8
- };