dynamic_scaffold 0.9.2 → 0.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: edf0775198c6f5d26a90789eda885512b98fe751f3b87e89c25deee394ea6383
4
- data.tar.gz: 1d3df6f9ae421979a3a64cbcd7b286a53855eb6f132dae87f7abbe41c7b8375c
3
+ metadata.gz: 511cee2fb3f2ed11b3b099f9691e077d1adc9eb4a86e242a0d66aece75dd8ce9
4
+ data.tar.gz: 714fb49999de05b2498d5bf632b5dc5cbb1f37558fc314828742faf9f19d27fe
5
5
  SHA512:
6
- metadata.gz: da3a9f985c4e2576403ef2ab81caea9ee302aaa83cd961845d39ba65f1fb2a7ffe9314c4cf1201c662719d2933f4abea6c4be14e9cbffeefe7cff51e3c41fa1b
7
- data.tar.gz: 6f1a8cee72198a94986102feec4512e12b3df1b9b71b0fed6570409256a073a0f9c31ec08ac67ffe11ba143bf998eda586445afecf3900149faf81be2cee8c06
6
+ metadata.gz: a3fe10386210187fd95c4edcb3fa7485c157d8a1bbfaad9ce30e9f1b4503bcedb1b0c764845111d54467aeac84675500c39c3a6759f33a2d6b97286b20e608e9
7
+ data.tar.gz: 0f9da6f65463afed518b730d71d2bff6cb69a375a04b7be2d34030a67a542d5a3405ce3a77584377d9c6035c9f3bf8eb7e6ca3b48e3cfc8e6f8392bb4e59b9a0
data/README.md CHANGED
@@ -218,8 +218,13 @@ class ShopController < ApplicationController
218
218
  config.form.item :text_field, :name
219
219
  # You can specify `label`.
220
220
  config.form.item(:text_field, :name).label 'Shop Name'
221
+
221
222
  # You can set default value for new action.
222
223
  config.form.item(:text_field, :name).default('Foo Bar')
224
+ # default also accept block.
225
+ config.form.item(:text_field, :name).default do
226
+ Shop.find_by(shop_id: params[:shop_id])
227
+ end
223
228
 
224
229
  # If you use hidden_field, the label will also be hidden.
225
230
  config.form.item :hidden_field, :id
@@ -542,7 +547,7 @@ If you want to dynamically set according to url parameters, you can also use blo
542
547
  class ShopController < ApplicationController
543
548
  include DynamicScaffold::Controller
544
549
  dynamic_scaffold Shop do |config|
545
- config.title.name do |params|
550
+ config.title.name do
546
551
  I18n.t "enum.user.role.#{params[role]}", default: params[role].titleize
547
552
  end
548
553
  ```
@@ -80,13 +80,13 @@ module DynamicScaffold
80
80
  titles(:new)
81
81
  end
82
82
 
83
- # def update
84
- # edit
85
- # end
83
+ def update
84
+ titles(:edit)
85
+ end
86
86
 
87
- # def create
88
- # create
89
- # end
87
+ def create
88
+ titles(:new)
89
+ end
90
90
 
91
91
  private
92
92
 
@@ -52,7 +52,7 @@ module DynamicScaffold
52
52
  @record = dynamic_scaffold.model.new
53
53
 
54
54
  defaults = dynamic_scaffold.form.items.each_with_object({}) do |item, memo|
55
- memo[item.name] = item.default if dynamic_scaffold.model.column_names.include?(item.name.to_s)
55
+ memo[item.name] = item.default_value(view_context) if dynamic_scaffold.model.column_names.include?(item.name.to_s)
56
56
  end
57
57
 
58
58
  @record.attributes = defaults.merge(scope_params)
@@ -135,9 +135,17 @@ module DynamicScaffold
135
135
  proxy_target.first
136
136
  end
137
137
 
138
- def default(value = nil)
139
- return @default if value.nil?
140
- @default = value
138
+ def default(value = nil, &block)
139
+ if block_given?
140
+ @default = block
141
+ else
142
+ @default = value
143
+ end
144
+ end
145
+
146
+ def default_value(view)
147
+ return view.instance_exec(&@default) if @default.is_a? Proc
148
+ @default
141
149
  end
142
150
 
143
151
  def insert(position, &block)
@@ -1,3 +1,3 @@
1
1
  module DynamicScaffold
2
- VERSION = '0.9.2'.freeze
2
+ VERSION = '0.10.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamic_scaffold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masamoto Miyata
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-09-01 00:00:00.000000000 Z
11
+ date: 2018-09-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: classnames-rails-view