pbw 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
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