linker 0.0.10 → 0.0.11
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 +4 -4
- data/README.md +10 -5
- data/lib/linker/version.rb +1 -1
- data/lib/linker.rb +5 -1
- data/spec/cars_form_spec.rb +5 -1
- data/spec/fake_app/forms/cars_form.rb +4 -0
- data/spec/users_form_spec.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8e488c0f6facf244f62195c7bba2cb9ed370c18
|
4
|
+
data.tar.gz: a841a81a7d5c85498697ebe3598105b826d5d262
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54bb06b89a04eba2be26f3f823562895adaee882aff0bd354ac0f76c7b81c7f0d58c953477c417972e8479a51a21bceb6bbcfbd1ca419d985fdd4119937fc565
|
7
|
+
data.tar.gz: 82f7710e7e63bd384bda00ec4e7cd0639ee1a7911313eacbfd211f7ed900581cac27de6f1f14d535ee5b1f25bae6a3636e2a1c0637930d9952251fac119c2899
|
data/README.md
CHANGED
@@ -51,11 +51,11 @@ class UserForm
|
|
51
51
|
end
|
52
52
|
```
|
53
53
|
|
54
|
-
Now you can create a new form for existing user `UserForm.new(User.find params[:id])` or to a new one `UserForm.new
|
54
|
+
Now you can create a new form for existing user `UserForm.new(User.find params[:id])` or to a new one `UserForm.new`:
|
55
55
|
```ruby
|
56
56
|
class UsersController < ApplicationController
|
57
57
|
def new
|
58
|
-
@user_form = UserForm.new(User.new)
|
58
|
+
@user_form = UserForm.new # same as UserForm.new(User.new)
|
59
59
|
end
|
60
60
|
|
61
61
|
def create
|
@@ -68,6 +68,10 @@ class UsersController < ApplicationController
|
|
68
68
|
render :new
|
69
69
|
end
|
70
70
|
end
|
71
|
+
|
72
|
+
def edit
|
73
|
+
@user_form = UserForm.new(User.find(params[:id])) # you need to load the record being edited
|
74
|
+
end
|
71
75
|
end
|
72
76
|
```
|
73
77
|
|
@@ -107,9 +111,10 @@ You can check out a demo project using Linker gem [here](https://github.com/glau
|
|
107
111
|
|
108
112
|
There are some callbacks you can override to keep your controllers DRY:
|
109
113
|
|
110
|
-
* `
|
111
|
-
* `
|
112
|
-
* `
|
114
|
+
* `after_init`: runs after `initialize` method of form class. Can be used to set default field values or to prepare data to form.
|
115
|
+
* `before_set_params(params)`: runs before `params=` method. Can be used to change params inside the form class, like string formatting.
|
116
|
+
* `before_save`: runs before save method.
|
117
|
+
* `after_save`: runs after save method. You can enqueue some background job here for instance.
|
113
118
|
|
114
119
|
Example:
|
115
120
|
|
data/lib/linker/version.rb
CHANGED
data/lib/linker.rb
CHANGED
@@ -8,11 +8,15 @@ module Linker
|
|
8
8
|
include Linker::Attributes
|
9
9
|
include Linker::Params
|
10
10
|
|
11
|
-
def initialize main_model_instance
|
11
|
+
def initialize main_model_instance = self.class._main_model.constantize.send(:new)
|
12
12
|
# Creating instance variable for main model
|
13
13
|
instance_variable_set("@#{main_model_instance.class.name.underscore}", main_model_instance)
|
14
14
|
|
15
15
|
prepare_attrs
|
16
|
+
after_init
|
17
|
+
end
|
18
|
+
|
19
|
+
def after_init
|
16
20
|
end
|
17
21
|
|
18
22
|
included do
|
data/spec/cars_form_spec.rb
CHANGED
@@ -3,7 +3,11 @@ require 'spec_helper'
|
|
3
3
|
describe CarsForm do
|
4
4
|
let(:cars_form) { CarsForm.new(Car.new) }
|
5
5
|
|
6
|
-
context '
|
6
|
+
context 'after_init callback' do
|
7
|
+
it { expect(cars_form.name).to eq('default car name') }
|
8
|
+
end
|
9
|
+
|
10
|
+
context 'callbacks' do
|
7
11
|
before do
|
8
12
|
cars_form.params = {
|
9
13
|
'name' => "Uno"
|
data/spec/users_form_spec.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Glauco Custódio
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|