beautiful_scaffold 0.3.0.pre → 0.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -11,6 +11,7 @@
11
11
  * Update prawn version 1.0.0.rc2
12
12
  * Big refactoring with javascript
13
13
  * Using twitter-bootstrap-rails with turbolinks compatibility and last version of bootstrap and fontawesome
14
+ * Generate locale file with auto translation
14
15
 
15
16
  * Bugfix
16
17
  * Avoid to re-generate created_at, updated_at, id search field at each migration
data/README.rdoc CHANGED
@@ -15,7 +15,7 @@ gem 'beautiful_scaffold', '0.2.7'
15
15
  === RubyOnRails 4.X
16
16
 
17
17
  Add this in your Gemfile :
18
- gem 'beautiful_scaffold', '0.3.0'
18
+ gem 'beautiful_scaffold', '0.3.0.rc1'
19
19
 
20
20
  === Next
21
21
 
@@ -39,19 +39,25 @@ type available :
39
39
  * wysiwyg
40
40
 
41
41
  # Example : products
42
- rails generate beautiful_scaffold product name:string price:price tva:float description:richtext visible:boolean && rake db:migrate
42
+ rails g beautiful_scaffold product name:string price:price tva:float description:richtext visible:boolean && rake db:migrate
43
43
 
44
44
  # Example : admin products
45
- rails generate beautiful_scaffold product name:string price:price tva:float description:richtext overview_description:richtext visible:boolean --namespace=admin && rake db:migrate
45
+ rails g beautiful_scaffold product name:string price:price tva:float description:richtext overview_description:richtext visible:boolean --namespace=admin && rake db:migrate
46
46
 
47
- === Locale (i18n)
47
+ === Migration (Use Add[Field]To[ModelPluralize] syntax)
48
48
 
49
- rails generate beautiful_locale all
49
+ rails g beautiful_migration AddFieldToModels field:type
50
+
51
+ === Locale (i18n) (Example)
52
+
53
+ rails g beautiful_locale all
54
+ rails g beautiful_locale fr
55
+ rails g beautiful_locale de
50
56
 
51
57
  === Join Table (has_and_belongs_to_many relation)
52
58
 
53
- rails generate beautiful_jointable model1 model2
59
+ rails g beautiful_jointable model1 model2
54
60
 
55
61
  === Install et Configure Devise (authentification) and Cancan (authorization)
56
62
 
57
- rails generate beautiful_devisecancan model
63
+ rails g beautiful_devisecancan model
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "beautiful_scaffold"
6
- s.version = "0.3.0.pre"
6
+ s.version = "0.3.0.rc1"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.summary = "Beautiful Scaffold generate fully customizable scaffold"
9
9
  s.email = "claudel.sylvain@gmail.com"
@@ -60,7 +60,7 @@ class BeautifulLocaleGenerator < Rails::Generators::Base
60
60
 
61
61
  Dir.glob("app/models/**/*").each { |model_file|
62
62
  puts model_file
63
- next if File.directory?(model_file)
63
+ next if File.directory?(model_file) or File.basename(model_file).first == '.'
64
64
  model = File.basename(model_file, File.extname(model_file))
65
65
  klass = model.camelize.constantize
66
66
 
@@ -105,6 +105,8 @@ class BeautifulLocaleGenerator < Rails::Generators::Base
105
105
  file.close
106
106
  end
107
107
 
108
+ private
109
+
108
110
  def translate_string(locale, str)
109
111
  # See http://www.microsofttranslator.com/dev/
110
112
  #
@@ -39,10 +39,8 @@ class BeautifulMigrationGenerator < Rails::Generators::Base
39
39
  if ['references', 'reference'].include?(t) then
40
40
  inject_into_file("app/models/#{model}.rb", "\n belongs_to :#{a}", :after => "ActiveRecord::Base")
41
41
  inject_into_file("app/models/#{a}.rb", "\n has_many :#{model_pluralize}, :dependent => :nullify", :after => "ActiveRecord::Base")
42
- inject_into_file("app/models/#{a}.rb", ":#{model}_ids, ", :after => "attr_accessible ")
43
42
  a += "_id"
44
43
  end
45
- inject_into_file("app/models/#{model}.rb", ":#{a}, ", :after => "attr_accessible ")
46
44
  }
47
45
  end
48
46
 
@@ -124,6 +124,21 @@ module BeautifulScaffoldCommonMethods
124
124
  return newmyattributes
125
125
  end
126
126
 
127
+ def attributes_without_type
128
+ newmyattributes = []
129
+ myattributes.each{ |attr|
130
+ a,t = attr.split(':')
131
+
132
+ if ['references', 'reference'].include?(t) then
133
+ a = a + '_id'
134
+ end
135
+
136
+ newmyattributes << a
137
+ }
138
+
139
+ return newmyattributes
140
+ end
141
+
127
142
  def fulltext_attribute
128
143
  fulltext_field = []
129
144
  myattributes.each{ |attr|
@@ -132,19 +132,22 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
132
132
 
133
133
  order("#{attribute} #{direction}")
134
134
  }
135
- # You can OVERRIDE this method used in model form and search form (in belongs_to relation)
136
- def caption
137
- (self["name"] || self["label"] || self["description"] || "##{id}")
138
- end', :after => "class #{model_camelize} < ActiveRecord::Base")
139
-
140
- inject_into_file("app/models/#{model}.rb",'
141
- include BeautifulScaffoldModule
142
135
 
136
+ include BeautifulScaffoldModule
143
137
  before_save :fulltext_field_processing
144
138
 
139
+ # You can OVERRIDE this method used in model form and search form (in belongs_to relation)
140
+ def caption
141
+ (self["name"] || self["label"] || self["description"] || "##{id}")
142
+ end
143
+
145
144
  def fulltext_field_processing
146
145
  # You can preparse with own things here
147
146
  generate_fulltext_field([' + fulltext_attribute.map{ |e| ('"' + e + '"') }.join(",") + '])
147
+ end
148
+
149
+ def self.permitted_attributes
150
+ return ' + attributes_without_type.map{ |attr| ":#{attr}" }.join(",") + '
148
151
  end', :after => "class #{model_camelize} < ActiveRecord::Base")
149
152
 
150
153
  inject_into_file("config/application.rb", ' config.autoload_paths += %W(#{config.root}/app/modules)' + "\n", :after => "< Rails::Application\n")
@@ -154,14 +157,12 @@ class BeautifulScaffoldGenerator < Rails::Generators::Base
154
157
  end
155
158
 
156
159
  def add_to_model
157
- # Add relation and foreign_key in attr_accessible
160
+ # Add relation
158
161
  myattributes.each{ |attr|
159
162
  a,t = attr.split(':')
160
163
  if ['references', 'reference'].include?(t) then
161
- inject_into_file("app/models/#{model}.rb", ":#{a}_id, ", :after => "attr_accessible ")
162
164
  begin
163
165
  inject_into_file("app/models/#{a}.rb", "\n has_many :#{model_pluralize}, :dependent => :nullify", :after => "ActiveRecord::Base")
164
- inject_into_file("app/models/#{a}.rb", ":#{model}_ids, ", :after => "attr_accessible ")
165
166
  rescue
166
167
  end
167
168
  end
@@ -97,7 +97,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
97
97
  end
98
98
 
99
99
  def create
100
- @<%= model %> = <%= model_camelize %>.create(params[:<%= model %>])
100
+ @<%= model %> = <%= model_camelize %>.create(params_for_model)
101
101
 
102
102
  respond_to do |format|
103
103
  if @<%= model %>.save
@@ -125,7 +125,7 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
125
125
  def update
126
126
 
127
127
  respond_to do |format|
128
- if @<%= model %>.update_attributes(params[:<%= model %>])
128
+ if @<%= model %>.update_attributes(params_for_model)
129
129
  format.html { redirect_to <%= namespace_for_route %><%= singular_table_name %>_path(@<%= model %>), :notice => t(:update_success, :model => "<%= model %>") }
130
130
  format.json { head :ok }
131
131
  else
@@ -199,5 +199,9 @@ class <%= namespace_for_class %><%= model_camelize.pluralize %>Controller < Beau
199
199
  def load_<%= model %>
200
200
  @<%= model %> = <%= model_camelize %>.find(params[:id])
201
201
  end
202
+
203
+ def params_for_model
204
+ params.require(:<%= model %>).permit(<%= model_camelize %>.permitted_attributes)
205
+ end
202
206
  end
203
207
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: beautiful_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.pre
4
+ version: 0.3.0.rc1
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors: