pbw 0.0.8 → 0.0.9

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 (123) hide show
  1. checksums.yaml +8 -8
  2. data/lib/generators/pbw/area/area_generator.rb +1 -2
  3. data/lib/generators/pbw/install/install_generator.rb +18 -10
  4. data/lib/generators/pbw/item/item_generator.rb +1 -2
  5. data/lib/generators/pbw/model_generator.rb +1 -1
  6. data/lib/generators/pbw/resource_helpers.rb +13 -9
  7. data/lib/generators/pbw/rules/capability/capability_generator.rb +5 -2
  8. data/lib/generators/pbw/rules/command/command_generator.rb +12 -16
  9. data/lib/generators/pbw/rules/constraint/constraint_generator.rb +5 -2
  10. data/lib/generators/pbw/rules/process/process_generator.rb +5 -2
  11. data/lib/generators/pbw/rules/trigger/trigger_generator.rb +5 -2
  12. data/lib/generators/pbw/scaffold_generator.rb +75 -8
  13. data/lib/generators/pbw/{install/templates → templates}/app.coffee +0 -0
  14. data/lib/generators/pbw/{area/templates → templates}/index.erb +1 -1
  15. data/lib/generators/pbw/{install/templates → templates}/lifecycle.rb +0 -0
  16. data/lib/generators/pbw/{rules/capability/templates → templates}/model.coffee +4 -4
  17. data/lib/generators/pbw/templates/router.coffee +11 -0
  18. data/lib/generators/pbw/templates/templates/edit.jst +23 -0
  19. data/lib/generators/pbw/templates/templates/home.jst +1 -0
  20. data/lib/generators/pbw/{area/templates → templates}/templates/index.jst +2 -4
  21. data/lib/generators/pbw/templates/templates/model.jst +7 -0
  22. data/lib/generators/pbw/templates/templates/new.jst +23 -0
  23. data/lib/generators/pbw/templates/templates/show.jst +16 -0
  24. data/lib/generators/pbw/{rules/capability/templates → templates}/views/edit_view.coffee +8 -1
  25. data/lib/generators/pbw/templates/views/home.coffee +8 -0
  26. data/lib/generators/pbw/{area/templates → templates}/views/index_view.coffee +0 -0
  27. data/lib/generators/pbw/{area/templates → templates}/views/model_view.coffee +0 -0
  28. data/lib/generators/pbw/{area/templates → templates}/views/new_view.coffee +9 -4
  29. data/lib/generators/pbw/{area/templates → templates}/views/show_view.coffee +0 -0
  30. data/lib/generators/pbw/token/token_generator.rb +2 -3
  31. data/lib/pbw/engine.rb +0 -4
  32. data/lib/pbw/version.rb +1 -1
  33. metadata +18 -101
  34. data/lib/generators/pbw/area/templates/model.coffee +0 -14
  35. data/lib/generators/pbw/area/templates/router.coffee +0 -31
  36. data/lib/generators/pbw/area/templates/templates/edit.jst +0 -21
  37. data/lib/generators/pbw/area/templates/templates/model.jst +0 -8
  38. data/lib/generators/pbw/area/templates/templates/new.jst +0 -21
  39. data/lib/generators/pbw/area/templates/templates/show.jst +0 -14
  40. data/lib/generators/pbw/area/templates/views/edit_view.coffee +0 -24
  41. data/lib/generators/pbw/install/templates/application.html.erb +0 -47
  42. data/lib/generators/pbw/install/templates/pbw.rb +0 -12
  43. data/lib/generators/pbw/item/templates/index.erb +0 -6
  44. data/lib/generators/pbw/item/templates/model.coffee +0 -14
  45. data/lib/generators/pbw/item/templates/router.coffee +0 -31
  46. data/lib/generators/pbw/item/templates/templates/edit.jst +0 -21
  47. data/lib/generators/pbw/item/templates/templates/index.jst +0 -17
  48. data/lib/generators/pbw/item/templates/templates/model.jst +0 -8
  49. data/lib/generators/pbw/item/templates/templates/new.jst +0 -21
  50. data/lib/generators/pbw/item/templates/templates/show.jst +0 -14
  51. data/lib/generators/pbw/item/templates/views/edit_view.coffee +0 -24
  52. data/lib/generators/pbw/item/templates/views/index_view.coffee +0 -20
  53. data/lib/generators/pbw/item/templates/views/model_view.coffee +0 -19
  54. data/lib/generators/pbw/item/templates/views/new_view.coffee +0 -37
  55. data/lib/generators/pbw/item/templates/views/show_view.coffee +0 -8
  56. data/lib/generators/pbw/rules/capability/templates/index.erb +0 -6
  57. data/lib/generators/pbw/rules/capability/templates/router.coffee +0 -31
  58. data/lib/generators/pbw/rules/capability/templates/templates/edit.jst +0 -21
  59. data/lib/generators/pbw/rules/capability/templates/templates/index.jst +0 -17
  60. data/lib/generators/pbw/rules/capability/templates/templates/model.jst +0 -8
  61. data/lib/generators/pbw/rules/capability/templates/templates/new.jst +0 -21
  62. data/lib/generators/pbw/rules/capability/templates/templates/show.jst +0 -14
  63. data/lib/generators/pbw/rules/capability/templates/views/index_view.coffee +0 -20
  64. data/lib/generators/pbw/rules/capability/templates/views/model_view.coffee +0 -19
  65. data/lib/generators/pbw/rules/capability/templates/views/new_view.coffee +0 -37
  66. data/lib/generators/pbw/rules/capability/templates/views/show_view.coffee +0 -8
  67. data/lib/generators/pbw/rules/command/templates/model.coffee +0 -14
  68. data/lib/generators/pbw/rules/command/templates/templates/model.jst +0 -7
  69. data/lib/generators/pbw/rules/command/templates/templates/new.jst +0 -17
  70. data/lib/generators/pbw/rules/command/templates/views/model_view.coffee +0 -19
  71. data/lib/generators/pbw/rules/command/templates/views/new_view.coffee +0 -37
  72. data/lib/generators/pbw/rules/constraint/templates/index.erb +0 -6
  73. data/lib/generators/pbw/rules/constraint/templates/model.coffee +0 -14
  74. data/lib/generators/pbw/rules/constraint/templates/router.coffee +0 -31
  75. data/lib/generators/pbw/rules/constraint/templates/templates/edit.jst +0 -21
  76. data/lib/generators/pbw/rules/constraint/templates/templates/index.jst +0 -17
  77. data/lib/generators/pbw/rules/constraint/templates/templates/model.jst +0 -8
  78. data/lib/generators/pbw/rules/constraint/templates/templates/new.jst +0 -21
  79. data/lib/generators/pbw/rules/constraint/templates/templates/show.jst +0 -14
  80. data/lib/generators/pbw/rules/constraint/templates/views/edit_view.coffee +0 -24
  81. data/lib/generators/pbw/rules/constraint/templates/views/index_view.coffee +0 -20
  82. data/lib/generators/pbw/rules/constraint/templates/views/model_view.coffee +0 -19
  83. data/lib/generators/pbw/rules/constraint/templates/views/new_view.coffee +0 -37
  84. data/lib/generators/pbw/rules/constraint/templates/views/show_view.coffee +0 -8
  85. data/lib/generators/pbw/rules/process/templates/index.erb +0 -6
  86. data/lib/generators/pbw/rules/process/templates/model.coffee +0 -14
  87. data/lib/generators/pbw/rules/process/templates/router.coffee +0 -31
  88. data/lib/generators/pbw/rules/process/templates/templates/edit.jst +0 -21
  89. data/lib/generators/pbw/rules/process/templates/templates/index.jst +0 -17
  90. data/lib/generators/pbw/rules/process/templates/templates/model.jst +0 -8
  91. data/lib/generators/pbw/rules/process/templates/templates/new.jst +0 -21
  92. data/lib/generators/pbw/rules/process/templates/templates/show.jst +0 -14
  93. data/lib/generators/pbw/rules/process/templates/views/edit_view.coffee +0 -24
  94. data/lib/generators/pbw/rules/process/templates/views/index_view.coffee +0 -20
  95. data/lib/generators/pbw/rules/process/templates/views/model_view.coffee +0 -19
  96. data/lib/generators/pbw/rules/process/templates/views/new_view.coffee +0 -37
  97. data/lib/generators/pbw/rules/process/templates/views/show_view.coffee +0 -8
  98. data/lib/generators/pbw/rules/trigger/templates/index.erb +0 -6
  99. data/lib/generators/pbw/rules/trigger/templates/model.coffee +0 -14
  100. data/lib/generators/pbw/rules/trigger/templates/router.coffee +0 -31
  101. data/lib/generators/pbw/rules/trigger/templates/templates/edit.jst +0 -21
  102. data/lib/generators/pbw/rules/trigger/templates/templates/index.jst +0 -17
  103. data/lib/generators/pbw/rules/trigger/templates/templates/model.jst +0 -8
  104. data/lib/generators/pbw/rules/trigger/templates/templates/new.jst +0 -21
  105. data/lib/generators/pbw/rules/trigger/templates/templates/show.jst +0 -14
  106. data/lib/generators/pbw/rules/trigger/templates/views/edit_view.coffee +0 -24
  107. data/lib/generators/pbw/rules/trigger/templates/views/index_view.coffee +0 -20
  108. data/lib/generators/pbw/rules/trigger/templates/views/model_view.coffee +0 -19
  109. data/lib/generators/pbw/rules/trigger/templates/views/new_view.coffee +0 -37
  110. data/lib/generators/pbw/rules/trigger/templates/views/show_view.coffee +0 -8
  111. data/lib/generators/pbw/token/templates/index.erb +0 -6
  112. data/lib/generators/pbw/token/templates/model.coffee +0 -14
  113. data/lib/generators/pbw/token/templates/router.coffee +0 -31
  114. data/lib/generators/pbw/token/templates/templates/edit.jst +0 -21
  115. data/lib/generators/pbw/token/templates/templates/index.jst +0 -17
  116. data/lib/generators/pbw/token/templates/templates/model.jst +0 -8
  117. data/lib/generators/pbw/token/templates/templates/new.jst +0 -21
  118. data/lib/generators/pbw/token/templates/templates/show.jst +0 -14
  119. data/lib/generators/pbw/token/templates/views/edit_view.coffee +0 -24
  120. data/lib/generators/pbw/token/templates/views/index_view.coffee +0 -20
  121. data/lib/generators/pbw/token/templates/views/model_view.coffee +0 -19
  122. data/lib/generators/pbw/token/templates/views/new_view.coffee +0 -37
  123. data/lib/generators/pbw/token/templates/views/show_view.coffee +0 -8
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZGY3YTY5ZTM0ZDc4OTQzNzQzM2UyNGU1ZjQzYTA3ZDljZTgyOGY2OA==
4
+ N2Y3MjQ0ODBkMzVkZmM3Y2MxYTdlZDhmNDYzY2NjMDY4YjRmOWE0YQ==
5
5
  data.tar.gz: !binary |-
6
- MTY3M2U0ODRmMGUwYjE4YTNlYTVkYWQ5ZjM1Yjg4N2ZhYmMyYzA2Ng==
6
+ OGNhMWJkMDEzMTEwNzQ5ZmU4YWE4MzcxY2Y4MjgyN2E0YjU1ZjJhMA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MGU5MTEwNGNmMGNkNWI3YWY1OWVkMzBmY2ExZDRiNzRiMWIxMTcyZWMwNzkx
10
- MzVlNTMwNWRlYzExOTk1N2Y3OGIyMDgyY2UzYzk4MThjZTgzZjk2ODM4NWRl
11
- NTYyZmI2MDQ4MzdjMzA3NzJhOTIwNmYxNzZmMWMxODE5OTE4MzU=
9
+ OWQ0ZDQ2MmJjNGRhYjc3ODIyNWJlNjkxM2U3NTU5OWFlMTQ1OTE1ZjI0ZDMz
10
+ MDQ0ZjdiOTA2NDY4OTNhZmEzZTUyMTg3ZTMyM2RhNmI3Y2FhOWFlNTM3OWQz
11
+ NjE2ZTQxZjQxYmJkN2YxOTY5MjkxN2FlN2Y2MThjMDRkNDZmMjY=
12
12
  data.tar.gz: !binary |-
13
- NzYwZTRjY2FiMGM1Y2Y0YWJmMDM1MmE0ZmM4MzNmYjA5MGU3YWNjNWVmZDc1
14
- ZTk0NjU5MWM4OGFhZjU0MDZlZjRjNmYyYTQ3NDQwMjRlYzFmZmMxOGYyMjVk
15
- OWUwMjMwOTQ4ZTJkZDg3NTAwNTg4MTgzOTU0Y2MxNWZlYWVmOTU=
13
+ YjFlNmJiNjlkZTM5YjVlYmNjZmFkNDExYTMxZDM1NjY4NTA2ZmVjYmIwYWMy
14
+ MTk1MzZkNGJkOTE4MDZhZGVkMDJjOTQwYTE0NDdmZWY2MDViMzMyZWM3Mjll
15
+ YmRiYzJjOTI0YjQzYjk2NzgxNmJlM2Y4YzM5NDgxODdkZGY5Yzk=
@@ -1,8 +1,7 @@
1
1
  require 'generators/pbw/scaffold_generator'
2
2
 
3
3
  class Pbw::AreaGenerator < Pbw::Generators::ScaffoldGenerator
4
- source_root File.expand_path("../templates", __FILE__)
5
-
4
+ source_root File.expand_path("../../templates", __FILE__)
6
5
  protected
7
6
  def base_model_class
8
7
  "Pbw::Area"
@@ -4,8 +4,9 @@ module Pbw
4
4
  module Generators
5
5
  class InstallGenerator < Rails::Generators::Base
6
6
  include Pbw::Generators::ResourceHelpers
7
- source_root File.expand_path('../templates', __FILE__)
8
-
7
+
8
+ source_root File.expand_path("../../templates", __FILE__)
9
+
9
10
  class_option :skip_git, :type => :boolean, :aliases => "-G", :default => false,
10
11
  :desc => "Skip Git ignores and keeps"
11
12
 
@@ -15,6 +16,21 @@ module Pbw
15
16
  end
16
17
  end
17
18
 
19
+ def create_router_file
20
+ template 'router.coffee', File.join(backbone_path, "routers", "app_router.js.coffee")
21
+ end
22
+
23
+ def create_home_view
24
+ template "views/home.coffee", File.join(backbone_path, "views/home", "index_view.js.coffee")
25
+ template "templates/home.jst", File.join(backbone_path, "templates/home", "index.jst.ejs")
26
+ end
27
+
28
+ def create_home_controller
29
+ template "index.erb", "app/views/home/index.html.erb"
30
+ generate "controller", "home index --skip"
31
+ gsub_file "config/routes.rb", "get \"home/index\"", "root :to => \"home#index\""
32
+ end
33
+
18
34
  def create_dir_layout
19
35
  %W{routers models views templates}.each do |dir|
20
36
  empty_directory "app/assets/javascripts/#{dir}"
@@ -38,14 +54,6 @@ module Pbw
38
54
  generate "devise:views"
39
55
  end
40
56
 
41
- def engine_layout
42
- template "application.html.erb", "app/views/pbw/layouts/application.html.erb"
43
- end
44
-
45
- def pbw_config
46
- template "pbw.rb", "config/initializers/pbw.rb"
47
- end
48
-
49
57
  def user_lifecycle
50
58
  template "lifecycle.rb", "app/models/user/lifecycle.rb"
51
59
  end
@@ -1,8 +1,7 @@
1
1
  require 'generators/pbw/scaffold_generator'
2
2
 
3
3
  class Pbw::ItemGenerator < Pbw::Generators::ScaffoldGenerator
4
- source_root File.expand_path("../templates", __FILE__)
5
-
4
+ source_root File.expand_path("../../templates", __FILE__)
6
5
  protected
7
6
  def base_model_class
8
7
  "Pbw::Item"
@@ -8,7 +8,7 @@ module Pbw
8
8
  argument :attributes, :type => :array, :default => [], :banner => "field:type field:type"
9
9
 
10
10
  def create_backbone_model
11
- template "model.coffee", "#{backbone_path}/models/#{file_name}.js.coffee"
11
+ template "model.coffee", "#{backbone_path}/models/#{model_namespace.downcase}/#{file_name}.js.coffee"
12
12
  end
13
13
  end
14
14
  end
@@ -6,8 +6,8 @@ module Pbw
6
6
  "app/assets/javascripts"
7
7
  end
8
8
 
9
- def model_namespace
10
- [js_app_name, "Models", class_name].join(".")
9
+ def js_model_namespace
10
+ [js_app_name, "Models", model_namespace, class_name].join(".")
11
11
  end
12
12
 
13
13
  def singular_model_name
@@ -19,19 +19,23 @@ module Pbw
19
19
  end
20
20
 
21
21
  def collection_namespace
22
- [js_app_name, "Collections", plural_name.camelize].join(".")
22
+ [js_app_name, "Collections", model_namespace, plural_name.camelize].join(".")
23
23
  end
24
-
25
- def view_namespace
26
- [js_app_name, "Views", plural_name.camelize].join(".")
24
+
25
+ def home_view_namespace
26
+ [js_app_name, "Views", 'Home'].join(".")
27
27
  end
28
28
 
29
- def router_namespace
30
- [js_app_name, "Routers", plural_name.camelize].join(".")
29
+ def view_namespace
30
+ [js_app_name, "Views", model_namespace, plural_name.camelize].join(".")
31
31
  end
32
32
 
33
33
  def jst(action)
34
- "templates/#{plural_name}/#{action}"
34
+ "templates/#{model_namespace.downcase}/#{plural_name}/#{action}"
35
+ end
36
+
37
+ def router_name
38
+ [js_app_name, "Routers", 'AppRouter'].join(".")
35
39
  end
36
40
 
37
41
  def js_app_name
@@ -2,8 +2,7 @@ require 'generators/pbw/scaffold_generator'
2
2
  require 'generators/pbw/rules/rules'
3
3
 
4
4
  class Pbw::Rules::CapabilityGenerator < Pbw::Generators::ScaffoldGenerator
5
- source_root File.expand_path('../templates', __FILE__)
6
-
5
+ source_root File.expand_path("../../../templates", __FILE__)
7
6
  protected
8
7
  def base_model_class
9
8
  "Pbw::Capability"
@@ -12,4 +11,8 @@ class Pbw::Rules::CapabilityGenerator < Pbw::Generators::ScaffoldGenerator
12
11
  def model_namespace
13
12
  "Capabilities"
14
13
  end
14
+
15
+ def available_views
16
+ []
17
+ end
15
18
  end
@@ -1,23 +1,15 @@
1
1
  require 'generators/pbw/resource_helpers'
2
- require 'generators/pbw/model_generator'
2
+ require 'generators/pbw/scaffold_generator'
3
3
  require 'generators/pbw/rules/rules'
4
4
 
5
- class Pbw::Rules::CommandGenerator < Pbw::Generators::ModelGenerator
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- def create_resources
9
- generate "model", "Commands::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
10
- gsub_file "app/models/commands/#{file_name}.rb", "class Commands::#{class_name}", "class Commands::#{class_name} < #{base_model_class}"
11
- gsub_file "app/models/commands/#{file_name}.rb", "include Mongoid::Document", ""
12
- end
13
-
14
- def create_view_files
15
- available_views.each do |view|
16
- template "views/#{view}_view.coffee", File.join(backbone_path, "views", plural_name, "#{view}_view.js.coffee")
17
- template "templates/#{view}.jst", File.join(backbone_path, "templates", plural_name, "#{view}.jst.ejs")
5
+ class Pbw::Rules::CommandGenerator < Pbw::Generators::ScaffoldGenerator
6
+ source_root File.expand_path("../../../templates", __FILE__)
7
+ class_option :create_process, :type => :boolean, :aliases => "-P", :default => false,
8
+ :desc => "Create process for command"
9
+ def create_process
10
+ if options[:create_process]
11
+ generate "pbw:rules:process", "#{class_name} #{attrs.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
18
12
  end
19
- template "views/model_view.coffee", File.join(backbone_path, "views", plural_name, "#{singular_name}_view.js.coffee")
20
- template "templates/model.jst", File.join(backbone_path, "templates", plural_name, "#{singular_name}.jst.ejs")
21
13
  end
22
14
 
23
15
  protected
@@ -28,4 +20,8 @@ class Pbw::Rules::CommandGenerator < Pbw::Generators::ModelGenerator
28
20
  def base_model_class
29
21
  "Pbw::Command"
30
22
  end
23
+
24
+ def model_namespace
25
+ "Commands"
26
+ end
31
27
  end
@@ -2,8 +2,7 @@ require 'generators/pbw/scaffold_generator'
2
2
  require 'generators/pbw/rules/rules'
3
3
 
4
4
  class Pbw::Rules::ConstraintGenerator < Pbw::Generators::ScaffoldGenerator
5
- source_root File.expand_path('../templates', __FILE__)
6
-
5
+ source_root File.expand_path("../../../templates", __FILE__)
7
6
  protected
8
7
  def base_model_class
9
8
  "Pbw::Constraint"
@@ -12,4 +11,8 @@ class Pbw::Rules::ConstraintGenerator < Pbw::Generators::ScaffoldGenerator
12
11
  def model_namespace
13
12
  "Constraints"
14
13
  end
14
+
15
+ def available_views
16
+ []
17
+ end
15
18
  end
@@ -2,8 +2,7 @@ require 'generators/pbw/scaffold_generator'
2
2
  require 'generators/pbw/rules/rules'
3
3
 
4
4
  class Pbw::Rules::ProcessGenerator < Pbw::Generators::ScaffoldGenerator
5
- source_root File.expand_path('../templates', __FILE__)
6
-
5
+ source_root File.expand_path("../../../templates", __FILE__)
7
6
  protected
8
7
  def base_model_class
9
8
  "Pbw::Process"
@@ -12,4 +11,8 @@ class Pbw::Rules::ProcessGenerator < Pbw::Generators::ScaffoldGenerator
12
11
  def model_namespace
13
12
  "Processes"
14
13
  end
14
+
15
+ def available_views
16
+ []
17
+ end
15
18
  end
@@ -2,8 +2,7 @@ require 'generators/pbw/scaffold_generator'
2
2
  require 'generators/pbw/rules/rules'
3
3
 
4
4
  class Pbw::Rules::TriggerGenerator < Pbw::Generators::ScaffoldGenerator
5
- source_root File.expand_path('../templates', __FILE__)
6
-
5
+ source_root File.expand_path("../../../templates", __FILE__)
7
6
  protected
8
7
  def base_model_class
9
8
  "Pbw::Trigger"
@@ -12,4 +11,8 @@ class Pbw::Rules::TriggerGenerator < Pbw::Generators::ScaffoldGenerator
12
11
  def model_namespace
13
12
  "Triggers"
14
13
  end
14
+
15
+ def available_views
16
+ []
17
+ end
15
18
  end
@@ -4,31 +4,98 @@ module Pbw
4
4
  module Generators
5
5
  class ScaffoldGenerator < ModelGenerator
6
6
 
7
- def create_router_files
8
- template 'router.coffee', File.join(backbone_path, "routers", class_path, "#{plural_name}_router.js.coffee")
7
+ def append_router_file
8
+ routes = []
9
+ route_methods = []
10
+ if available_views.include?('index')
11
+ routes << "#{route_entry(plural_model_name,"index#{model_namespace}#{plural_name.camelize}")}"
12
+ route_methods << "#{route_method("index#{model_namespace}#{plural_name.camelize}", "Index")}"
13
+ end
14
+ if available_views.include?('new')
15
+ routes << "#{route_entry("#{plural_model_name}/new","new#{model_namespace}#{class_name}")}"
16
+ route_methods << "#{route_method("new#{model_namespace}#{plural_name.camelize}", "New")}"
17
+ end
18
+ if available_views.include?('edit')
19
+ routes << "#{route_entry("#{plural_model_name}/:id/edit","edit#{model_namespace}#{class_name}")}"
20
+ route_methods << "#{route_method("edit#{model_namespace}#{plural_name.camelize}", "Edit")}"
21
+ end
22
+ if available_views.include?('show')
23
+ routes << "#{route_entry("#{plural_model_name}/:id","show#{model_namespace}#{class_name}")}"
24
+ route_methods << "#{route_method("show#{model_namespace}#{plural_name.camelize}", "Show")}"
25
+ end
26
+ if available_views.include?('index') # needs to be at the end
27
+ routes << "#{route_entry("#{plural_model_name}/.*","index#{model_namespace}#{plural_name.camelize}")}"
28
+ end
29
+ inject_into_file router_file, :after => 'initialize: (options) ->' do
30
+ "\n @#{plural_model_name} = new #{collection_namespace}Collection\n"
31
+ end
32
+ inject_into_file router_file, :after => 'routes:' do
33
+ "\n#{routes.join('')}"
34
+ end
35
+ inject_into_file router_file, :before => ' home: ->' do
36
+ "#{route_methods.join("\n\n")}\n\n"
37
+ end
9
38
  end
10
39
 
11
40
  def create_view_files
12
41
  available_views.each do |view|
13
- template "views/#{view}_view.coffee", File.join(backbone_path, "views", plural_name, "#{view}_view.js.coffee")
14
- template "templates/#{view}.jst", File.join(backbone_path, "templates", plural_name, "#{view}.jst.ejs")
42
+ template "views/#{view}_view.coffee", File.join(backbone_path, "views/#{model_namespace.downcase}", plural_name, "#{view}_view.js.coffee")
43
+ template "templates/#{view}.jst", File.join(backbone_path, "templates/#{model_namespace.downcase}", plural_name, "#{view}.jst.ejs")
15
44
  end
16
- template "views/model_view.coffee", File.join(backbone_path, "views", plural_name, "#{singular_name}_view.js.coffee")
17
- template "templates/model.jst", File.join(backbone_path, "templates", plural_name, "#{singular_name}.jst.ejs")
45
+ template "views/model_view.coffee", File.join(backbone_path, "views/#{model_namespace.downcase}", plural_name, "#{singular_name}_view.js.coffee")
46
+ template "templates/model.jst", File.join(backbone_path, "templates/#{model_namespace.downcase}", plural_name, "#{singular_name}.jst.ejs")
18
47
  end
19
48
 
20
49
  def create_resources
21
50
  generate "model", "#{model_namespace}::#{class_name} #{attributes.map{|attr| "#{attr.name}:#{attr.type}"}.join(' ')}"
22
- template "index.erb", "app/views/#{plural_name}/index.html.erb"
23
- generate "controller", "#{plural_name} index --skip"
24
51
  gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "class #{model_namespace}::#{class_name}", "class #{model_namespace}::#{class_name} < #{base_model_class}"
25
52
  gsub_file "app/models/#{model_namespace.downcase}/#{file_name}.rb", "include Mongoid::Document", ""
26
53
  end
27
54
 
55
+ def append_app_file
56
+ inject_into_file "app/assets/javascripts/#{application_name.underscore}.js.coffee", :after => "Views: {}" do
57
+ "\nwindow.#{js_app_name}.Models.#{model_namespace} = {}\nwindow.#{js_app_name}.Collections.#{model_namespace} = {}\nwindow.#{js_app_name}.Views.#{model_namespace} = {}\n"
58
+ end
59
+ end
60
+
28
61
  protected
29
62
  def available_views
30
63
  %w(index show new edit)
31
64
  end
65
+
66
+ def router_file
67
+ File.join(backbone_path, "routers", "app_router.js.coffee")
68
+ end
69
+
70
+ def route_entry(path, method_name)
71
+ " \"#{path}\"\t:\t\"#{method_name}\"\n"
72
+ end
73
+
74
+ def route_method(method_name, view)
75
+ method_params = case view
76
+ when 'Index', 'New'
77
+ ''
78
+ when 'Edit', 'Show'
79
+ "(id) "
80
+ end
81
+ view_js = case view
82
+ when 'Index'
83
+ "@view = new #{view_namespace}.#{view}View(#{plural_model_name}: @#{plural_model_name})"
84
+ when 'New'
85
+ "#{singular_model_name} = new @#{plural_model_name}.model()\n @view = new #{view_namespace}.#{view}View(#{plural_model_name}: @#{plural_model_name}, model: #{singular_model_name})"
86
+ when 'Edit', 'Show'
87
+ "#{singular_model_name} = new @#{plural_model_name}.get(id)\n @view = new #{view_namespace}.#{view}View(#{plural_model_name}: @#{plural_model_name}, model: #{singular_model_name})"
88
+ end
89
+ "
90
+ #{method_name}: #{method_params}->
91
+ @#{plural_model_name}.fetch
92
+ success: (collection) =>
93
+ #{view_js}
94
+ $(\"#app\").html(@view.render().el)
95
+ error: (model, response) ->
96
+ window.console && console.log response
97
+ "
98
+ end
32
99
  end
33
100
  end
34
101
  end
@@ -1,6 +1,6 @@
1
1
  <script type="text/javascript">
2
2
  $(function() {
3
- window.router = new <%= router_namespace %>Router;
3
+ window.router = new <%= router_name %>;
4
4
  Backbone.history.start();
5
5
  });
6
6
  </script>
@@ -1,6 +1,6 @@
1
- class <%= model_namespace %> extends Backbone.Model
1
+ class <%= js_model_namespace %> extends Backbone.Model
2
2
  paramRoot: '<%= singular_table_name %>'
3
- urlRoot: '/pbw/capabilities/<%= class_name%>'
3
+ urlRoot: '/pbw/<%=model_namespace.downcase%>/<%= class_name%>'
4
4
 
5
5
  defaults:
6
6
  name: null
@@ -10,5 +10,5 @@ class <%= model_namespace %> extends Backbone.Model
10
10
  <% end -%>
11
11
 
12
12
  class <%= collection_namespace %>Collection extends Backbone.Collection
13
- model: <%= model_namespace %>
14
- url: '/pbw/capabilities/<%= class_name%>'
13
+ model: <%= js_model_namespace %>
14
+ url: '/pbw/<%=model_namespace.downcase%>/<%= class_name%>'
@@ -0,0 +1,11 @@
1
+ class <%= router_name %> extends Backbone.Router
2
+ initialize: (options) ->
3
+
4
+
5
+ routes:
6
+ "" : "home"
7
+
8
+
9
+ home: ->
10
+ @view = new <%= "#{js_app_name}.Views.Home.IndexView" %>
11
+ $("#app").html(@view.render().el)
@@ -0,0 +1,23 @@
1
+ <form id="edit-<%= singular_table_name %>" name="<%= singular_table_name %>">
2
+ <div id="error"></div>
3
+ <input type="hidden" name="authenticity_token" value="<%%= $("meta[name='csrf-token']").attr("content") %>">
4
+ <fieldset>
5
+ <legend>Edit <%= singular_table_name %></legend>
6
+ <div class="field">
7
+ <label for="name">Name:</label>
8
+ <input type="text" name="name" id="name" value="<%%= name %>" >
9
+ </div>
10
+ <% attributes.each do |attribute| -%>
11
+ <div class="field">
12
+ <label for="<%= attribute.name %>"> <%= attribute.human_name %>:</label>
13
+ <input type="text" name="<%= attribute.name %>" id="<%= attribute.name %>" value="<%%= <%= attribute.name %> %>" >
14
+ </div>
15
+
16
+ <% end -%>
17
+ <div class="actions">
18
+ <input type="submit" value="Update <%= human_name %>" />
19
+ </div>
20
+ </fieldset>
21
+ </form>
22
+
23
+ <a href="#/<%=plural_model_name%>">Back</a>
@@ -0,0 +1 @@
1
+ <!-- This is the home view of your app -->
@@ -1,6 +1,5 @@
1
- <h1>Listing <%= plural_table_name %></h1>
2
-
3
1
  <table id="<%= plural_name %>-table">
2
+ <caption>Listing <%= plural_table_name %></caption>
4
3
  <tr>
5
4
  <th>Name</th>
6
5
  <% attributes.each do |attribute| -%>
@@ -8,10 +7,9 @@
8
7
  <% end -%>
9
8
  <th></th>
10
9
  <th></th>
11
- <th></th>
12
10
  </tr>
13
11
  </table>
14
12
 
15
13
  <br/>
16
14
 
17
- <a href="#/new">New <%= human_name %></a>
15
+ <a href="#/<%=plural_model_name%>/new">New <%= human_name %></a>
@@ -0,0 +1,7 @@
1
+ <td><a href="#/<%=plural_model_name%>/<%%= _id %>"><%%= name %></a></td>
2
+ <% attributes.each do |attribute| -%>
3
+ <td><%%= <%= attribute.name %> %></td>
4
+ <% end -%>
5
+
6
+ <td><a href="#/<%=plural_model_name%>/<%%= _id %>/edit">Edit</td>
7
+ <td><a href="#/<%=plural_model_name%>/<%%= _id %>/destroy" class="destroy">Delete</a></td>
@@ -0,0 +1,23 @@
1
+ <form id="new-<%= singular_table_name %>" name="<%= singular_table_name %>">
2
+ <div id="error"></div>
3
+ <input type="hidden" name="authenticity_token" value="<%%= $("meta[name='csrf-token']").attr("content") %>">
4
+ <fieldset>
5
+ <legend>New <%= singular_table_name %></legend>
6
+ <div class="field">
7
+ <label for="name">Name:</label>
8
+ <input type="text" name="name" id="name" value="<%%= name %>" >
9
+ </div>
10
+ <% attributes.each do |attribute| -%>
11
+ <div class="field">
12
+ <label for="<%= attribute.name %>"> <%= attribute.human_name %>:</label>
13
+ <input type="text" name="<%= attribute.name %>" id="<%= attribute.name %>" value="<%%= <%= attribute.name %> %>" >
14
+ </div>
15
+
16
+ <% end -%>
17
+ <div class="actions">
18
+ <input type="submit" value="Create <%= human_name %>" />
19
+ </div>
20
+ </fieldset>
21
+ </form>
22
+
23
+ <a href="#/<%=plural_model_name%>">Back</a>
@@ -0,0 +1,16 @@
1
+ <table id="<%= singular_name %>-table">
2
+ <tbody>
3
+ <tr>
4
+ <th>Name:</th>
5
+ <td><%%= name %></td>
6
+ </tr>
7
+ <% attributes.each do |attribute| -%>
8
+ <tr>
9
+ <th><%= attribute.human_name %>:</th>
10
+ <td><%%= <%= attribute.name %> %></td>
11
+ </tr>
12
+ <% end -%>
13
+
14
+ </tbody>
15
+ </table>
16
+ <a href="#/<%=plural_model_name%>">Back</a>
@@ -13,7 +13,14 @@ class <%= view_namespace %>.EditView extends Backbone.View
13
13
  @model.save(null,
14
14
  success: (<%= singular_name %>) =>
15
15
  @model = <%= singular_name %>
16
- window.location.hash = "/#{@model.id}"
16
+ window.location.hash = "/<%=model_namespace.downcase%>/#{@model.id}"
17
+ error: (model, jqXHR) =>
18
+ $("#error").html('<h2>There was a problem saving the <%= singular_name %></h2><ul>')
19
+ _.each($.parseJSON(jqXHR.responseText), (value,key) ->
20
+ $("#error").append('<li>' + value + '</li>')
21
+ )
22
+ $("#error").append('</ul>')
23
+ $("#error").show()
17
24
  )
18
25
 
19
26
  render: ->
@@ -0,0 +1,8 @@
1
+ <%= home_view_namespace %> ||= {}
2
+
3
+ class <%= home_view_namespace %>.IndexView extends Backbone.View
4
+ template: JST["templates/home/index"]
5
+
6
+ render: ->
7
+ @$el.html(@template())
8
+ return this
@@ -23,10 +23,15 @@ class <%= view_namespace %>.NewView extends Backbone.View
23
23
  @collection.create(@model.toJSON(),
24
24
  success: (<%= singular_name %>) =>
25
25
  @model = <%= singular_name %>
26
- window.location.hash = "/#{@model.id}"
27
-
28
- error: (<%= singular_name %>, jqXHR) =>
29
- @model.set({errors: $.parseJSON(jqXHR.responseText)})
26
+ window.location.hash = "/<%=model_namespace.downcase%>/#{@model.id}"
27
+
28
+ error: (model, jqXHR) =>
29
+ $("#error").html('<h2>There was a problem saving the <%= singular_name %></h2><ul>')
30
+ _.each($.parseJSON(jqXHR.responseText), (value,key) ->
31
+ $("#error").append('<li>' + value + '</li>')
32
+ )
33
+ $("#error").append('</ul>')
34
+ $("#error").show()
30
35
  )
31
36
 
32
37
  render: ->
@@ -1,9 +1,8 @@
1
1
  require 'generators/pbw/scaffold_generator'
2
2
 
3
3
  class Pbw::TokenGenerator < Pbw::Generators::ScaffoldGenerator
4
- source_root File.expand_path('../templates', __FILE__)
5
-
6
- protected
4
+ source_root File.expand_path("../../templates", __FILE__)
5
+ protected
7
6
  def base_model_class
8
7
  "Pbw::Token"
9
8
  end
data/lib/pbw/engine.rb CHANGED
@@ -41,8 +41,4 @@ module Pbw
41
41
  self.config.user_lifecycle_class || User::Lifecycle
42
42
  end
43
43
  end
44
-
45
- def self.setup
46
- yield Engine.config
47
- end
48
44
  end
data/lib/pbw/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pbw
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end