rails-backbone-generator 0.0.2 → 0.0.3

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.
Files changed (58) hide show
  1. data/.gitignore +19 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE +22 -0
  4. data/README.md +213 -0
  5. data/Rakefile +2 -0
  6. data/lib/generators/backbone/collection_generator.rb +70 -0
  7. data/lib/generators/backbone/model_generator.rb +56 -0
  8. data/lib/generators/backbone/namespace_generator.rb +62 -0
  9. data/lib/generators/backbone/setup_generator/templates/Guardfile +44 -0
  10. data/lib/generators/backbone/setup_generator/templates/app/assets/javascripts/application.js +14 -0
  11. data/lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/core_extentions/collections_extentions.coffee +30 -0
  12. data/lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/helpers/.gitkeep +0 -0
  13. data/lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/utils/.gitkeep +0 -0
  14. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/fixtures/.gitkeep +0 -0
  15. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/association_helpers.coffee +3 -0
  16. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/common_helpers.coffee +13 -0
  17. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/fake_host.coffee +14 -0
  18. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/headless_webkit_helper.coffee +9 -0
  19. data/lib/generators/backbone/setup_generator/templates/spec/javascripts/support/jasmine.yml +81 -0
  20. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-0.9.2.js +1431 -0
  21. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-bind-to-1.0.0.coffee +47 -0
  22. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-handlebars-1.0.0.js +121 -0
  23. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-query-0.2.3.coffee +314 -0
  24. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-relational-0.6.0.js +1687 -0
  25. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/handlebars-1.0.rc.1.js +1920 -0
  26. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/underscore-1.3.3.js +1059 -0
  27. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/browser_compatibility/json2.js +487 -0
  28. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/browser_compatibility/localstorage-polyfill.js +92 -0
  29. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery-1.8.0.js +9227 -0
  30. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery-ui.min.js +17 -0
  31. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery.easing-1.3.js +205 -0
  32. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery_ujs.js +368 -0
  33. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/backbone-factory.js +53 -0
  34. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/jasmine-jquery-1.3.1.js +288 -0
  35. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/jasmine-sinon.js +43 -0
  36. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/mock-ajax.js +207 -0
  37. data/lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/sinon-1.4.2.js +4081 -0
  38. data/lib/generators/backbone/setup_generator.rb +90 -0
  39. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/collections/%collection_name%.coffee.tt +4 -0
  40. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/collections/.gitkeep +0 -0
  41. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/models/%model_name%.coffee.tt +15 -0
  42. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/models/.gitkeep +0 -0
  43. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/routes/.gitkeep +0 -0
  44. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/templates/.gitkeep +0 -0
  45. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%/views/.gitkeep +0 -0
  46. data/lib/generators/backbone/templates/app/assets/javascripts/%namespace%.coffee.tt +15 -0
  47. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/collections/%collection_name%_spec.coffee.tt +8 -0
  48. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/collections/.gitkeep +0 -0
  49. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/factories/%model_name%_factory.coffee.tt +43 -0
  50. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/factories/.gitkeep +0 -0
  51. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/models/%model_name%_spec.coffee.tt +12 -0
  52. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/models/.gitkeep +0 -0
  53. data/lib/generators/backbone/templates/spec/javascripts/%namespace%/views/.gitkeep +0 -0
  54. data/lib/generators/backbone_generator.rb +3 -0
  55. data/lib/rails_backbone_generator/version.rb +3 -0
  56. data/lib/rails_backbone_generator.rb +4 -0
  57. data/rails_backbone_generator.gemspec +20 -0
  58. metadata +61 -4
@@ -0,0 +1,90 @@
1
+ # encoding: utf-8
2
+ require 'rails/generators'
3
+
4
+ module Backbone
5
+ class SetupGenerator < Rails::Generators::Base
6
+ source_root File.expand_path('../setup_generator/templates', __FILE__)
7
+ desc "Setup a Backbone Application"
8
+
9
+ def setup_app
10
+ directory '.'
11
+ end
12
+
13
+ def add_development_gems
14
+ testing_gems = <<-TESTING_GEMS
15
+ group :development, :test do
16
+
17
+ # Jasmine
18
+ gem 'jasmine-rails'
19
+ gem 'jasmine-headless-webkit', '~> 0.8.4'
20
+
21
+ # Guard
22
+ gem 'growl'
23
+ gem 'rb-fsevent'
24
+ gem 'guard-rspec'
25
+ gem 'guard-jasmine-headless-webkit' # brew install qt --build-from-source
26
+ end
27
+
28
+ group :test do
29
+ gem 'therubyracer', :platform => :ruby
30
+ end
31
+ TESTING_GEMS
32
+
33
+ append_to_file 'Gemfile', testing_gems
34
+ say testing_gems
35
+ run 'bundle'# in_root { `bundle` }
36
+ end
37
+
38
+ def print_tree
39
+ tree = <<-TREE
40
+ Gemfile (updated)
41
+ Guardfile
42
+
43
+ app/assets/javascripts
44
+ ├── application.js
45
+ └── shared
46
+ ├── core_extentions
47
+ │ └── collections_extentions.coffee
48
+ ├── helpers
49
+ └── utils
50
+
51
+ spec/javascripts/
52
+ ├── fixtures
53
+ ├── helpers
54
+ │   ├── association_helpers.coffee
55
+ │   ├── common_helpers.coffee
56
+ │   ├── fake_host.coffee
57
+ │   └── headless_webkit_helper.coffee
58
+ └── support
59
+    └── jasmine.yml
60
+
61
+ vendor/javascripts/
62
+ ├── backbone
63
+ │   ├── backbone-0.9.2.js
64
+ │   ├── backbone-bind-to-1.0.0.coffee
65
+ │   ├── backbone-handlebars-1.0.0.coffee
66
+ │   ├── backbone-query-0.1.2.js
67
+ │   ├── backbone-relational-0.6.0.js
68
+ │   ├── handlebars-1.0.rc.1.js
69
+ │   └── underscore-1.3.3.js
70
+ ├── browser_compatibility
71
+ │   ├── json2.js
72
+ │   └── localstorage-polyfill.js
73
+ ├── jquery
74
+ │   ├── jquery-1.8.0.js
75
+ │   ├── jquery-ui.min.js
76
+ │   ├── jquery.easing-1.3.js
77
+ │   └── jquery_ujs.js
78
+ └── testing
79
+ ├── backbone-factory.js
80
+ ├── jasmine-jquery-1.3.1.js
81
+ ├── jasmine-sinon.js
82
+ ├── mock-ajax.js
83
+ └── sinon-1.4.2.js
84
+ TREE
85
+ say tree
86
+ end
87
+
88
+
89
+ end
90
+ end
@@ -0,0 +1,4 @@
1
+ #= require ../models/<%= model_name %>
2
+
3
+ class <%= [namespace('classify'), "Collections", collection_name('classify')].compact.join('.') %> extends <%= collection_base_class %>
4
+ model: <%= [namespace('classify'), "Models", model_name('classify')].compact.join('.') %>
@@ -0,0 +1,15 @@
1
+ class <%= [namespace('classify'), "Models", model_name('classify')].compact.join('.') %> extends Backbone.RelationalModel
2
+
3
+ # relations:[
4
+ # {
5
+ # type: 'HasMany'
6
+ # key: 'examples'
7
+ # relatedModel: '<%= [namespace('classify'), "Models", "Example"].compact.join('.') %>'
8
+ # collectionType: '<%= [namespace('classify'), "Collections", "Examples"].compact.join('.') %>'
9
+ # reverseRelation:
10
+ # key: 'example_id'
11
+ # type: 'HasOne'
12
+ # }
13
+ # ]
14
+ #
15
+ # defaults: {}
@@ -0,0 +1,15 @@
1
+ #= require_self
2
+ #= require_tree ./<%= namespace %>
3
+ window.<%= namespace( :classify ) %> ||= {}
4
+ _(<%= namespace( :classify ) %>).extend
5
+ Collections: {}
6
+ Models: {}
7
+ Routers: {}
8
+ Views: {}
9
+ Templates: {}
10
+ Environment: {}
11
+
12
+
13
+
14
+ $(document).ready ->
15
+
@@ -0,0 +1,8 @@
1
+ describe "<%= [namespace('classify'), 'Collections'].compact.join('.') %>", ->
2
+
3
+ describe "<%= collection_name('classify') %>", ->
4
+ @<%= collection_name %> = Factory.<%= collection_name %>()
5
+
6
+ it "should build from factory", =>
7
+ expect(@<%= collection_name %>).toBeA(<%= [namespace('classify'), "Collections", collection_name('classify')].compact.join('.') %>)
8
+ expect(@<%= collection_name %>.at(0)).toBeA(<%= [namespace('classify'), "Models", model_name('classify')].compact.join('.') %>)
@@ -0,0 +1,43 @@
1
+ # ====================================================
2
+ # = Model =
3
+ # ====================================================
4
+ BackboneFactory.define '<%= model_name %>', <%= "#{namespace('classify')}.Models.#{model_name('classify')}" %>, ->
5
+ # title: 'Your Title Here'
6
+ # description: 'string, function, or another Factory'
7
+ # size: _(['Tall', 'Grande', 'Venti', 'Trenta']).shuffle()[0]
8
+ # section: Factory.section()
9
+
10
+
11
+
12
+
13
+ # =======================================================
14
+ # = FactoryGirl Interface: =
15
+ # = Factory.modleName( {overrides:here} ) =
16
+ # =======================================================
17
+ window.Factory = (->
18
+ factories = [{}].concat _(BackboneFactory.factories).keys()
19
+ _(factories).inject (memo, factory)->
20
+ memo[factory]= (overrides)-> BackboneFactory.create factory, -> overrides
21
+ memo
22
+ )()
23
+
24
+
25
+ <%- if collection_name -%>
26
+ # ====================================================
27
+ # = Collection =
28
+ # ====================================================
29
+ _(window.Factory).extend({
30
+ <%= collection_name %>: (overrides)-> new <%= "#{namespace('classify')}.Collections.#{collection_name('classify')}" %> _({
31
+ models: _([1,2,3]).map -> BackboneFactory.create('<%= model_name %>', ->)
32
+ }).extend( overrides )
33
+
34
+ })
35
+ <%- end -%>
36
+
37
+
38
+ # ====================================================
39
+ # = Complex Factories =
40
+ # ====================================================
41
+
42
+ # section_w_section_materials: (overrides)-> Factory.section( _( section_materials: Factory.section_materials().models ).extend(overrides) )
43
+ # distributor_w_offers: (overrides)-> Factory.distributor( _(offers: Factory.offers().models ).extend(overrides))
@@ -0,0 +1,12 @@
1
+ describe "<%= [namespace('classify'), 'Models'].compact.join('.') %>", ->
2
+
3
+ describe "<%= model_name('classify') %>", ->
4
+ @<%= model_name %> = Factory.<%= model_name %>()
5
+
6
+ it "should build from factory", =>
7
+ expect(@<%= model_name %>).toBeA( <%= [namespace('classify'), "Models", model_name('classify')].compact.join('.') %> )
8
+ # expect(@<%= model_name %>).toHaveAssociated('examples')
9
+
10
+ it "should have better tests", =>
11
+ # TODO
12
+
@@ -0,0 +1,3 @@
1
+ module Backbone
2
+ require 'rails/generators'
3
+ end
@@ -0,0 +1,3 @@
1
+ module RailsBackboneGenerator
2
+ VERSION = "0.0.3"
3
+ end
@@ -0,0 +1,4 @@
1
+ require "rails_backbone_generator/version"
2
+
3
+ module RailsBackboneGenerator
4
+ end
@@ -0,0 +1,20 @@
1
+ # -*- encoding: utf-8 -*-
2
+ require File.expand_path('../lib/rails_backbone_generator/version', __FILE__)
3
+
4
+ Gem::Specification.new do |gem|
5
+ gem.name = "rails-backbone-generator"
6
+ gem.authors = ["Chip Miller"]
7
+ gem.email = ["charlespmiller@gmail.com"]
8
+ gem.description = %q{Generates Backbone.js models and collections with BackboneFactory and Jasmine tests.}
9
+ gem.summary = %q{Inspired by rails generate - Generates Backbone.js models and collections with BackboneFactory and Jasmine tests. }
10
+ gem.homepage = "https://github.com/chip-miller/rails-backbone-generator#railsbackbonegenerator"
11
+
12
+ gem.files = `git ls-files`.split($\)
13
+ # gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
14
+ # gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
15
+ gem.require_paths = ["lib"]
16
+ gem.version = RailsBackboneGenerator::VERSION
17
+
18
+ gem.add_development_dependency "bundler", ">= 1.0.0"
19
+ gem.add_development_dependency "rails", ">= 3.0.0"
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-backbone-generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-18 00:00:00.000000000 Z
12
+ date: 2013-01-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -50,8 +50,65 @@ email:
50
50
  executables: []
51
51
  extensions: []
52
52
  extra_rdoc_files: []
53
- files: []
54
- homepage: https://github.com/chip-miller/rails-backbone-generator
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - LICENSE
57
+ - README.md
58
+ - Rakefile
59
+ - lib/generators/backbone/collection_generator.rb
60
+ - lib/generators/backbone/model_generator.rb
61
+ - lib/generators/backbone/namespace_generator.rb
62
+ - lib/generators/backbone/setup_generator.rb
63
+ - lib/generators/backbone/setup_generator/templates/Guardfile
64
+ - lib/generators/backbone/setup_generator/templates/app/assets/javascripts/application.js
65
+ - lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/core_extentions/collections_extentions.coffee
66
+ - lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/helpers/.gitkeep
67
+ - lib/generators/backbone/setup_generator/templates/app/assets/javascripts/shared/utils/.gitkeep
68
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/fixtures/.gitkeep
69
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/association_helpers.coffee
70
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/common_helpers.coffee
71
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/fake_host.coffee
72
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/helpers/headless_webkit_helper.coffee
73
+ - lib/generators/backbone/setup_generator/templates/spec/javascripts/support/jasmine.yml
74
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-0.9.2.js
75
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-bind-to-1.0.0.coffee
76
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-handlebars-1.0.0.js
77
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-query-0.2.3.coffee
78
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/backbone-relational-0.6.0.js
79
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/handlebars-1.0.rc.1.js
80
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/backbone/underscore-1.3.3.js
81
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/browser_compatibility/json2.js
82
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/browser_compatibility/localstorage-polyfill.js
83
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery-1.8.0.js
84
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery-ui.min.js
85
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery.easing-1.3.js
86
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/jquery/jquery_ujs.js
87
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/backbone-factory.js
88
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/jasmine-jquery-1.3.1.js
89
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/jasmine-sinon.js
90
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/mock-ajax.js
91
+ - lib/generators/backbone/setup_generator/templates/vendor/assets/javascripts/testing/sinon-1.4.2.js
92
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%.coffee.tt
93
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/collections/%collection_name%.coffee.tt
94
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/collections/.gitkeep
95
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/models/%model_name%.coffee.tt
96
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/models/.gitkeep
97
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/routes/.gitkeep
98
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/templates/.gitkeep
99
+ - lib/generators/backbone/templates/app/assets/javascripts/%namespace%/views/.gitkeep
100
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/collections/%collection_name%_spec.coffee.tt
101
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/collections/.gitkeep
102
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/factories/%model_name%_factory.coffee.tt
103
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/factories/.gitkeep
104
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/models/%model_name%_spec.coffee.tt
105
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/models/.gitkeep
106
+ - lib/generators/backbone/templates/spec/javascripts/%namespace%/views/.gitkeep
107
+ - lib/generators/backbone_generator.rb
108
+ - lib/rails_backbone_generator.rb
109
+ - lib/rails_backbone_generator/version.rb
110
+ - rails_backbone_generator.gemspec
111
+ homepage: https://github.com/chip-miller/rails-backbone-generator#railsbackbonegenerator
55
112
  licenses: []
56
113
  post_install_message:
57
114
  rdoc_options: []