linker 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- 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
|