schofield 0.1.5 → 0.2.0

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 (45) hide show
  1. data/.bundle/config +2 -0
  2. data/Gemfile +13 -0
  3. data/Gemfile.lock +28 -0
  4. data/{LICENSE → LICENSE.txt} +1 -1
  5. data/README.rdoc +11 -9
  6. data/Rakefile +28 -24
  7. data/VERSION +1 -1
  8. data/lib/generators/schofield/association.rb +94 -0
  9. data/lib/generators/schofield/attribute.rb +76 -0
  10. data/lib/generators/schofield/attributes.rb +204 -0
  11. data/lib/generators/schofield/level.rb +287 -0
  12. data/lib/generators/schofield/levels.rb +74 -0
  13. data/lib/generators/schofield/responses.rb +46 -0
  14. data/lib/generators/schofield/routes.rb +46 -0
  15. data/lib/generators/schofield/schofield_generator.rb +124 -0
  16. data/lib/generators/templates/controller.erb +25 -0
  17. data/lib/generators/templates/form.erb +31 -0
  18. data/lib/generators/templates/index.erb +5 -0
  19. data/lib/generators/templates/join_controller.erb +15 -0
  20. data/lib/generators/templates/model.erb +109 -0
  21. data/lib/generators/templates/show.erb +21 -0
  22. data/schofield.gemspec +48 -46
  23. data/spec/spec_helper.rb +7 -4
  24. metadata +82 -47
  25. data/.gitignore +0 -21
  26. data/generators/schofield_controller/schofield_controller_generator.rb +0 -157
  27. data/generators/schofield_controller/templates/controller_spec.rb +0 -25
  28. data/generators/schofield_controller/templates/helper_spec.rb +0 -11
  29. data/generators/schofield_controller/templates/index_partial.rb +0 -26
  30. data/generators/schofield_controller/templates/nested/controller.rb +0 -106
  31. data/generators/schofield_controller/templates/nested/edit.rb +0 -5
  32. data/generators/schofield_controller/templates/nested/index.rb +0 -3
  33. data/generators/schofield_controller/templates/nested/new.rb +0 -1
  34. data/generators/schofield_controller/templates/nested/show.rb +0 -12
  35. data/generators/schofield_controller/templates/unnested/controller.rb +0 -94
  36. data/generators/schofield_controller/templates/unnested/edit.rb +0 -5
  37. data/generators/schofield_controller/templates/unnested/index.rb +0 -3
  38. data/generators/schofield_controller/templates/unnested/new.rb +0 -1
  39. data/generators/schofield_controller/templates/unnested/show.rb +0 -12
  40. data/generators/schofield_controller/templates/view_spec.rb +0 -12
  41. data/generators/schofield_form/schofield_form_generator.rb +0 -22
  42. data/generators/schofield_form/templates/view__form.html.haml +0 -11
  43. data/lib/schofield.rb +0 -111
  44. data/lib/schofield/tasks.rb +0 -3
  45. data/lib/schofield/tasks/schofield.rake +0 -7
@@ -1,9 +1,12 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
3
4
  require 'schofield'
4
- require 'spec'
5
- require 'spec/autorun'
6
5
 
7
- Spec::Runner.configure do |config|
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
8
11
 
9
12
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schofield
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 23
4
5
  prerelease: false
5
6
  segments:
6
7
  - 0
7
- - 1
8
- - 5
9
- version: 0.1.5
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Marc Tauber
@@ -14,107 +15,141 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-05-27 00:00:00 +01:00
18
+ date: 2010-12-14 00:00:00 +00:00
18
19
  default_executable:
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ type: :development
21
24
  name: rspec
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ~>
29
+ - !ruby/object:Gem::Version
30
+ hash: 11
31
+ segments:
32
+ - 2
33
+ - 1
34
+ - 0
35
+ version: 2.1.0
36
+ requirement: *id001
37
+ - !ruby/object:Gem::Dependency
22
38
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
39
+ type: :development
40
+ name: bundler
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
42
+ none: false
24
43
  requirements:
25
- - - ">="
44
+ - - ~>
26
45
  - !ruby/object:Gem::Version
46
+ hash: 23
27
47
  segments:
28
48
  - 1
29
- - 2
30
- - 9
31
- version: 1.2.9
49
+ - 0
50
+ - 0
51
+ version: 1.0.0
52
+ requirement: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ prerelease: false
32
55
  type: :development
33
- version_requirements: *id001
56
+ name: jeweler
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
58
+ none: false
59
+ requirements:
60
+ - - ~>
61
+ - !ruby/object:Gem::Version
62
+ hash: 1
63
+ segments:
64
+ - 1
65
+ - 5
66
+ - 1
67
+ version: 1.5.1
68
+ requirement: *id003
34
69
  - !ruby/object:Gem::Dependency
35
- name: formtastic
36
70
  prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
71
+ type: :development
72
+ name: rcov
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
74
+ none: false
38
75
  requirements:
39
76
  - - ">="
40
77
  - !ruby/object:Gem::Version
78
+ hash: 3
41
79
  segments:
42
80
  - 0
43
- - 9
44
- - 8
45
- version: 0.9.8
46
- type: :development
47
- version_requirements: *id002
48
- description: Create views and controllers from routes defined in admin namespace. Very, very basic and very specific to my needs.'
81
+ version: "0"
82
+ requirement: *id004
83
+ description: longer description of your gem
49
84
  email: marc@marctauber.com
50
85
  executables: []
51
86
 
52
87
  extensions: []
53
88
 
54
89
  extra_rdoc_files:
55
- - LICENSE
90
+ - LICENSE.txt
56
91
  - README.rdoc
57
92
  files:
93
+ - .bundle/config
58
94
  - .document
59
- - .gitignore
60
- - LICENSE
95
+ - Gemfile
96
+ - Gemfile.lock
97
+ - LICENSE.txt
61
98
  - README.rdoc
62
99
  - Rakefile
63
100
  - VERSION
64
- - generators/schofield_controller/schofield_controller_generator.rb
65
- - generators/schofield_controller/templates/controller_spec.rb
66
- - generators/schofield_controller/templates/helper_spec.rb
67
- - generators/schofield_controller/templates/index_partial.rb
68
- - generators/schofield_controller/templates/nested/controller.rb
69
- - generators/schofield_controller/templates/nested/edit.rb
70
- - generators/schofield_controller/templates/nested/index.rb
71
- - generators/schofield_controller/templates/nested/new.rb
72
- - generators/schofield_controller/templates/nested/show.rb
73
- - generators/schofield_controller/templates/unnested/controller.rb
74
- - generators/schofield_controller/templates/unnested/edit.rb
75
- - generators/schofield_controller/templates/unnested/index.rb
76
- - generators/schofield_controller/templates/unnested/new.rb
77
- - generators/schofield_controller/templates/unnested/show.rb
78
- - generators/schofield_controller/templates/view_spec.rb
79
- - generators/schofield_form/schofield_form_generator.rb
80
- - generators/schofield_form/templates/view__form.html.haml
81
- - lib/schofield.rb
82
- - lib/schofield/tasks.rb
83
- - lib/schofield/tasks/schofield.rake
101
+ - lib/generators/schofield/association.rb
102
+ - lib/generators/schofield/attribute.rb
103
+ - lib/generators/schofield/attributes.rb
104
+ - lib/generators/schofield/level.rb
105
+ - lib/generators/schofield/levels.rb
106
+ - lib/generators/schofield/responses.rb
107
+ - lib/generators/schofield/routes.rb
108
+ - lib/generators/schofield/schofield_generator.rb
109
+ - lib/generators/templates/controller.erb
110
+ - lib/generators/templates/form.erb
111
+ - lib/generators/templates/index.erb
112
+ - lib/generators/templates/join_controller.erb
113
+ - lib/generators/templates/model.erb
114
+ - lib/generators/templates/show.erb
84
115
  - schofield.gemspec
85
116
  - spec/schofield_spec.rb
86
117
  - spec/spec.opts
87
118
  - spec/spec_helper.rb
88
119
  has_rdoc: true
89
120
  homepage: http://github.com/sauberia/schofield
90
- licenses: []
91
-
121
+ licenses:
122
+ - MIT
92
123
  post_install_message:
93
- rdoc_options:
94
- - --charset=UTF-8
124
+ rdoc_options: []
125
+
95
126
  require_paths:
96
127
  - lib
97
128
  required_ruby_version: !ruby/object:Gem::Requirement
129
+ none: false
98
130
  requirements:
99
131
  - - ">="
100
132
  - !ruby/object:Gem::Version
133
+ hash: 3
101
134
  segments:
102
135
  - 0
103
136
  version: "0"
104
137
  required_rubygems_version: !ruby/object:Gem::Requirement
138
+ none: false
105
139
  requirements:
106
140
  - - ">="
107
141
  - !ruby/object:Gem::Version
142
+ hash: 3
108
143
  segments:
109
144
  - 0
110
145
  version: "0"
111
146
  requirements: []
112
147
 
113
148
  rubyforge_project:
114
- rubygems_version: 1.3.6
149
+ rubygems_version: 1.3.7
115
150
  signing_key:
116
151
  specification_version: 3
117
- summary: Creates views and controller from defined routes and respective models
152
+ summary: one-line summary of your gem
118
153
  test_files:
119
154
  - spec/schofield_spec.rb
120
155
  - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
@@ -1,157 +0,0 @@
1
- class SchofieldControllerGenerator < Rails::Generator::NamedBase
2
-
3
- def initialize(runtime_args, runtime_options = {})
4
- super
5
- usage if runtime_args.empty?
6
-
7
- @args = runtime_args.dup
8
- base_name = @args.shift
9
- assign_names!(base_name)
10
- end
11
-
12
-
13
- def manifest
14
- record do |m|
15
-
16
- template_directory = has_parents? ? 'nested' : 'unnested'
17
-
18
- sco_class = class_name.gsub('Admin::', '').singularize
19
- sco_underscored = sco_class.underscore
20
- sco_humanized_uc = sco_underscored.humanize
21
- sco_underscored_plural = sco_underscored.pluralize
22
- sco_titleized_plural = sco_underscored_plural.titleize
23
- sco_humanized = sco_humanized_uc.downcase
24
-
25
- sco_parents = []
26
- if has_parents?
27
- options[:parents].each do |parent|
28
- sco_parent_class = has_parents? ? parent.classify : ''
29
- sco_parent_underscored = sco_parent_class.underscore.downcase
30
- sco_parent_underscored_plural = sco_parent_underscored.pluralize
31
- sco_parent_titleized_plural = sco_parent_underscored.titleize.pluralize
32
- sco_parents << {
33
- :class => sco_parent_class,
34
- :underscored => sco_parent_underscored,
35
- :underscored_plural => sco_parent_underscored_plural,
36
- :titleized_plural => sco_parent_titleized_plural,
37
- }
38
- end
39
- end
40
-
41
- sco_children = []
42
- if has_children?
43
- options[:children].each do |child|
44
- sco_child_class = has_children? ? child.classify : ''
45
- sco_child_underscored = sco_child_class.underscore.downcase
46
- sco_child_underscored_plural = sco_child_underscored.pluralize
47
- sco_child_titleized_plural = sco_child_underscored.titleize.pluralize
48
- sco_child_humanized = sco_child_underscored.humanize.downcase
49
- sco_children << {
50
- :class => sco_child_class,
51
- :underscored => sco_child_underscored,
52
- :underscored_plural => sco_child_underscored_plural,
53
- :titleized_plural => sco_child_titleized_plural,
54
- :humanized => sco_child_humanized
55
- }
56
- end
57
- end
58
-
59
- assigns = { :sco_underscored => sco_underscored,
60
- :sco_underscored_plural => sco_underscored_plural,
61
- :sco_class => sco_class,
62
- :sco_humanized_uc => sco_humanized_uc,
63
- :sco_parents => sco_parents,
64
- :sco_titleized_plural => sco_titleized_plural,
65
- :sco_humanized => sco_humanized,
66
- :non_restful_actions => non_restful_actions,
67
- :sco_children => sco_children }
68
-
69
-
70
- # Check for class naming collisions.
71
- m.class_collisions class_path, "#{class_name}Controller", "#{class_name}Helper"
72
-
73
- # Controller, helper, views, and spec directories.
74
- m.directory File.join('app/controllers', class_path)
75
- m.directory File.join('app/helpers', class_path)
76
- m.directory File.join('app/views', class_path, file_name)
77
- m.directory File.join('spec/controllers', class_path)
78
- m.directory File.join('spec/helpers', class_path)
79
- m.directory File.join('spec/views', class_path, file_name)
80
-
81
- # Controller spec, class, and helper.
82
- m.template 'controller_spec.rb',
83
- File.join('spec/controllers', class_path, "#{file_name}_controller_spec.rb")
84
-
85
- m.template 'helper_spec.rb',
86
- File.join('spec/helpers', class_path, "#{file_name}_helper_spec.rb")
87
-
88
- m.template "#{template_directory}/controller.rb",
89
- File.join('app/controllers', class_path, "#{file_name}_controller.rb"),
90
- :assigns => assigns
91
-
92
- m.template 'controller:helper.rb',
93
- File.join('app/helpers', class_path, "#{file_name}_helper.rb")
94
-
95
- # Spec and view template for each action.
96
- actions.each do |action|
97
-
98
- m.template 'view_spec.rb',
99
- File.join('spec/views', class_path, file_name, "#{action}.haml_spec.rb"),
100
- :assigns => { :action => action, :model => file_name }
101
-
102
- m.template "#{template_directory}/#{action}.rb",
103
- File.join('app/views', class_path, file_name, "#{action}.haml"),
104
- :assigns => assigns if actions_with_view.include?(action)
105
- end
106
-
107
- if actions.include?('index') || has_parents?
108
- m.template 'index_partial.rb',
109
- File.join('app/views/shared', "_#{sco_underscored_plural}.haml"),
110
- :assigns => assigns
111
- end
112
-
113
- end
114
- end
115
-
116
-
117
-
118
-
119
- def actions_with_view
120
- non_restful_actions + %w( index show new edit )
121
- end
122
-
123
- def restful_actions
124
- %w( index show new create edit update destroy sort )
125
- end
126
-
127
- def non_restful_actions
128
- restful_actions - %w( index show new create edit update destroy sort )
129
- end
130
-
131
-
132
- protected
133
-
134
- def add_options!(opt)
135
- opt.separator ''
136
- opt.separator 'Options:'
137
- opt.on('--parents PARENTS', 'Specify the parent models') { |v| options[:parents] = v if v.present? }
138
- opt.on('--children CHILDREN', 'Specify the children models') { |v| options[:children] = v if v.present? }
139
- end
140
-
141
- def has_parents?
142
- options[:parents].present?
143
- end
144
-
145
- def has_children?
146
- options[:children].present?
147
- end
148
-
149
- def filter_actions array
150
- array.map { |item| actions.include?(item) ? ":#{item}" : nil }.compact.join(', ')
151
- end
152
-
153
- def banner
154
- "Usage: #{$0} schofield_controller ControllerName [--parents PARENTS --children CHILDREN]"
155
- end
156
-
157
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= class_name %>Controller do
4
-
5
- <% if actions.empty? -%>
6
- #Delete this example and add some real ones
7
- <% else -%>
8
- #Delete these examples and add some real ones
9
- <% end -%>
10
- it "should use <%= class_name %>Controller" do
11
- controller.should be_an_instance_of(<%= class_name %>Controller)
12
- end
13
-
14
- <% unless actions.empty? -%>
15
- <% for action in actions -%>
16
-
17
- describe "GET '<%= action %>'" do
18
- it "should be successful" do
19
- get '<%= action %>'
20
- response.should be_success
21
- end
22
- end
23
- <% end -%>
24
- <% end -%>
25
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= class_name %>Helper do
4
-
5
- #Delete this example and add some real ones or delete this file
6
- it "should be included in the object returned by #helper" do
7
- included_modules = (class << helper; self; end).send :included_modules
8
- included_modules.should include(<%= class_name %>Helper)
9
- end
10
-
11
- end
@@ -1,26 +0,0 @@
1
- - if <%= sco_underscored_plural %>.any?
2
-
3
- %table#<%= sco_underscored_plural %>
4
-
5
- = render :partial => 'shared/admin/table_header', :locals => { :columns => %w( Title ), :buttons => <%= %w(show edit destroy).inject(0) {|count,item| count += actions.include?(item) ? 1 : 0 } %> }
6
-
7
- %tbody
8
-
9
- - <%= sco_underscored_plural %>.each do |<%= sco_underscored %>|
10
-
11
- %tr<%- if actions.include?('sort') -%>{ :class => 'dragable', :id => "<%= sco_underscored %>_#{<%= sco_underscored %>.id}"}<%- end -%>
12
-
13
- %td&= <%= sco_underscored %>
14
- <%- if actions.include?('show') -%>
15
- %td= link_to_button 'Show', admin_<%= sco_underscored %>_path(<%= sco_underscored %>)
16
- <%- end -%>
17
- <%- if actions.include?('edit') -%>
18
- %td= link_to_button 'Edit', edit_admin_<%= sco_underscored %>_path(<%= sco_underscored %>)
19
- <%- end -%>
20
- <%- if actions.include?('destroy') -%>
21
- %td= link_to_button 'Delete', admin_<%= sco_underscored %>_path(<%= sco_underscored %>), :method => 'delete', :confirm => "Are you sure you want to delete the <%= sco_humanized %>: #{h(<%= sco_underscored %>)}?"
22
- <%- end -%>
23
- <%- if actions.include?('sort') -%>
24
-
25
- = sortable_element('<%= sco_underscored_plural %>', :items => 'tr.dragable', :url => sort_admin_<%= sco_underscored_plural %>_path)
26
- <%- end -%>