schofield 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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.2
1
+ 0.0.3
@@ -0,0 +1,2 @@
1
+ class SchofieldFormGenerator < FormGenerator
2
+ end
File without changes
@@ -0,0 +1,3 @@
1
+ Dir[File.join(File.dirname(__FILE__), 'tasks', '*.rake')].each do |f|
2
+ load f
3
+ end
data/schofield.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{schofield}
8
- s.version = "0.0.2"
8
+ s.version = "0.0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Marc Tauber"]
@@ -23,8 +23,6 @@ Gem::Specification.new do |s|
23
23
  "README.rdoc",
24
24
  "Rakefile",
25
25
  "VERSION",
26
- "generators/form/form_generator.rb",
27
- "generators/form/templates/view__form.html.haml",
28
26
  "generators/schofield_controller/schofield_controller_generator.rb",
29
27
  "generators/schofield_controller/templates/controller_spec.rb",
30
28
  "generators/schofield_controller/templates/helper_spec.rb",
@@ -39,8 +37,11 @@ Gem::Specification.new do |s|
39
37
  "generators/schofield_controller/templates/unnested/new.rb",
40
38
  "generators/schofield_controller/templates/unnested/show.rb",
41
39
  "generators/schofield_controller/templates/view_spec.rb",
40
+ "generators/schofield_form/schofield_form_generator.rb",
41
+ "generators/schofield_form/templates/view__form.html.haml",
42
42
  "lib/schofield.rb",
43
- "lib/tasks/schofield.rake",
43
+ "lib/schofield/tasks.rb",
44
+ "lib/schofield/tasks/schofield.rake",
44
45
  "schofield.gemspec",
45
46
  "spec/schofield_spec.rb",
46
47
  "spec/spec.opts",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schofield
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Tauber
@@ -48,8 +48,6 @@ files:
48
48
  - README.rdoc
49
49
  - Rakefile
50
50
  - VERSION
51
- - generators/form/form_generator.rb
52
- - generators/form/templates/view__form.html.haml
53
51
  - generators/schofield_controller/schofield_controller_generator.rb
54
52
  - generators/schofield_controller/templates/controller_spec.rb
55
53
  - generators/schofield_controller/templates/helper_spec.rb
@@ -64,8 +62,11 @@ files:
64
62
  - generators/schofield_controller/templates/unnested/new.rb
65
63
  - generators/schofield_controller/templates/unnested/show.rb
66
64
  - generators/schofield_controller/templates/view_spec.rb
65
+ - generators/schofield_form/schofield_form_generator.rb
66
+ - generators/schofield_form/templates/view__form.html.haml
67
67
  - lib/schofield.rb
68
- - lib/tasks/schofield.rake
68
+ - lib/schofield/tasks.rb
69
+ - lib/schofield/tasks/schofield.rake
69
70
  - schofield.gemspec
70
71
  - spec/schofield_spec.rb
71
72
  - spec/spec.opts
@@ -1,120 +0,0 @@
1
- # coding: utf-8
2
- # Get current OS - needed for clipboard functionality
3
- case RUBY_PLATFORM
4
- when /darwin/ then
5
- CURRENT_OS = :osx
6
- when /win32/
7
- CURRENT_OS = :win
8
- begin
9
- require 'win32/clipboard'
10
- rescue LoadError
11
- # Do nothing
12
- end
13
- else
14
- CURRENT_OS = :x
15
- end
16
-
17
- class FormGenerator < Rails::Generator::NamedBase
18
-
19
- default_options :haml => false,
20
- :partial => false
21
-
22
- VIEWS_PATH = File.join('app', 'views').freeze
23
- IGNORED_COLUMNS = [:updated_at, :created_at].freeze
24
-
25
- attr_reader :controller_file_name,
26
- :controller_class_path,
27
- :controller_class_nesting,
28
- :controller_class_nesting_depth,
29
- :controller_class_name,
30
- :template_type
31
-
32
- def initialize(runtime_args, runtime_options = {})
33
- super
34
- base_name, @controller_class_path = extract_modules(@name.pluralize)
35
- controller_class_name_without_nesting, @controller_file_name = inflect_names(base_name)
36
- @template_type = options[:haml] ? :haml : :erb
37
- end
38
-
39
- def manifest
40
- record do |m|
41
- if options[:partial]
42
- controller_and_view_path = options[:controller] || File.join(controller_class_path, controller_file_name)
43
- # Ensure directory exists.
44
- m.directory File.join(VIEWS_PATH, controller_and_view_path)
45
- # Create a form partial for the model as "_form" in it's views path.
46
- m.template "view__form.html.#{template_type}", File.join(VIEWS_PATH, controller_and_view_path, "_form.html.#{template_type}")
47
- else
48
- # Load template file, and render without saving to file
49
- template = File.read(File.join(source_root, "view__form.html.#{template_type}"))
50
- erb = ERB.new(template, nil, '-')
51
- generated_code = erb.result(binding).strip rescue nil
52
-
53
- # Print the result, and copy to clipboard
54
- puts "# ---------------------------------------------------------"
55
- puts "# GENERATED FORMTASTIC CODE"
56
- puts "# ---------------------------------------------------------"
57
- puts
58
- puts generated_code || " Nothing could be generated - model exists?"
59
- puts
60
- puts "# ---------------------------------------------------------"
61
- puts " Copied to clipboard - just paste it!" if save_to_clipboard(generated_code)
62
- end
63
- end
64
- end
65
-
66
- protected
67
-
68
- # Save to lipboard with multiple OS support.
69
- def save_to_clipboard(data)
70
- return unless data
71
- begin
72
- case CURRENT_OS
73
- when :osx
74
- `echo "#{data}" | pbcopy`
75
- when :win
76
- ::Win32::Clipboard.data = data
77
- else # :linux/:unix
78
- `echo "#{data}" | xsel --clipboard` || `echo "#{data}" | xclip`
79
- end
80
- rescue
81
- false
82
- else
83
- true
84
- end
85
- end
86
-
87
- # Add additional model attributes if specified in args - probably not that common scenario.
88
- def attributes
89
- # Get columns for the requested model.
90
- existing_attributes = @class_name.constantize.content_columns.reject { |column| IGNORED_COLUMNS.include?(column.name.to_sym) }
91
- @args = super + existing_attributes
92
- end
93
-
94
- def add_options!(opt)
95
- opt.separator ''
96
- opt.separator 'Options:'
97
-
98
- # Allow option to generate HAML views instead of ERB.
99
- opt.on('--haml',
100
- "Generate HAML output instead of the default ERB.") do |v|
101
- options[:haml] = v
102
- end
103
-
104
- # Allow option to generate to partial in model's views path, instead of printing out in terminal.
105
- opt.on('--partial',
106
- "Save generated output directly to a form partial (app/views/{resource}/_form.html.*).") do |v|
107
- options[:partial] = v
108
- end
109
-
110
- opt.on('--controller CONTROLLER_PATH',
111
- "Specify a non-standard controller for the specified model (e.g. admin/posts).") do |v|
112
- options[:controller] = v if v.present?
113
- end
114
- end
115
-
116
- def banner
117
- "Usage: #{$0} form ExistingModelName [--haml] [--partial]"
118
- end
119
-
120
- end