decent_ham 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2432af19ed3b2ecdc446888996f690f46d5c3842
4
- data.tar.gz: 561f0748c8006bd4ec254dae85dd9eaf6e637cec
3
+ metadata.gz: bbaa2c10c45232794ad60500cfa11e91da75f296
4
+ data.tar.gz: 948b4ec68d35d653e838c4715109c0229174f9c8
5
5
  SHA512:
6
- metadata.gz: 4f5d21d1981ee35332f204ffbf978a9e88697fc2c52b16665f4d4732e14210f32b11ca27640e05b408439c991683aeddbfbfbf284d0ce1d191bb6df018662472
7
- data.tar.gz: c75803d69cb410e9bd05950abae76e740201ea646f7a25775ed2466d1e576c1f0a77adf5fb512454fa87d7b77d55a908a291a1c0f4bb985c5501f8dc1a4bb1d1
6
+ metadata.gz: ac8998325ca358256ca2a76d93798ed32bac60de4a1252ab2019c9bdcb4f40e1889d84fb6c7884b2e3481d7257185bd3fa42fadd323beeaa540e7abf31deefac
7
+ data.tar.gz: 62da2f3acd578d131d87f882ab2b47f18e17449319cdcab8415df01f1054caf9f6324a89ccf71ccf2676a8a4bf163b217f07cab407240e0f812050c2bfb41ffd
@@ -0,0 +1,70 @@
1
+ require 'rails/generators'
2
+
3
+ module DecentHam
4
+ class DecentHamGenerator < Rails::Generators::NamedBase
5
+ source_root File.expand_path('../templates', __FILE__)
6
+
7
+ def singular_name
8
+ name.singularize
9
+ end
10
+
11
+ def plural_name
12
+ name
13
+ end
14
+
15
+ def strong_params
16
+ strong_params = ":#{singular_name}_params"
17
+ end
18
+
19
+ def create_model
20
+ template "model.rb", "app/models/#{singular_name}.rb"
21
+ end
22
+
23
+ def model_attributes
24
+ constant_name.columns_hash.map do |key, value|
25
+ OpenStruct.new(name: key, data_type: value.type)
26
+ end.delete_if { |column| %w(id created_at updated_at).include? column.name }
27
+ end
28
+
29
+ def create_controller
30
+ @attributes = model_attributes
31
+ template "controller.rb", "app/controllers/#{name}_controller.rb"
32
+ end
33
+
34
+ def add_route
35
+ route "resources :#{name}"
36
+ end
37
+
38
+ def constant_name
39
+ singular_name.capitalize.constantize
40
+ end
41
+
42
+ def attach_form_fields
43
+ model_attributes.each do |attribute|
44
+ attribute.form_field =
45
+ case attribute.data_type
46
+ when :string || :decimal || :integer || :float || :references
47
+ "f.text_field :#{attribute.name}"
48
+ when :text
49
+ "f.text_area :#{attribute.name}"
50
+ when :datetime || :timestamp
51
+ "f.datetime_select :#{attribute.name}"
52
+ when :boolean
53
+ "f.check_box :#{attribute.name}"
54
+ when :date
55
+ "f.date_select :#{attribute.name}"
56
+ when :time
57
+ "f.time_select :#{attribute.name}"
58
+ end
59
+ end
60
+ end
61
+
62
+ def create_views
63
+ @attributes = attach_form_fields
64
+ %w(index new edit _form show).each do |view_name|
65
+ template "#{view_name}.html.haml", "app/views/#{name}/#{view_name}.html.haml"
66
+ end
67
+ end
68
+
69
+ end
70
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decent_ham
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vic Ramon
@@ -58,6 +58,7 @@ executables: []
58
58
  extensions: []
59
59
  extra_rdoc_files: []
60
60
  files:
61
+ - lib/generators/decent_ham/decent_ham_generator.rb
61
62
  - lib/generators/decent_ham/templates/_form.html.haml
62
63
  - lib/generators/decent_ham/templates/controller.rb
63
64
  - lib/generators/decent_ham/templates/edit.html.haml