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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 202e246d9b8bba56438ee91d84cf718d61307e8c
4
- data.tar.gz: bb02b4dd6d5672839ad67f88efabb552cae8e475
3
+ metadata.gz: a8e488c0f6facf244f62195c7bba2cb9ed370c18
4
+ data.tar.gz: a841a81a7d5c85498697ebe3598105b826d5d262
5
5
  SHA512:
6
- metadata.gz: 6e05c2b3f2805cc9364ab4c3e7ce5a692e97462a51e0e5adb1ad1f1b635284b56eed847bdbd85e997e9590753c4b96a060a5c4fda98120d3ce6e03169ebe5d9e
7
- data.tar.gz: 757b6f285cc457725fe4d7a4554e27b545b331dbc31f5ea6f1750e42accdf40a6e8d7ba53f7bfc2c73ebdb6397645b7c3f721f23a60fe4a6a2370d0ce81f8436
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(User.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
- * `before_set_params(params)`: run before `params=` method. Can be used to change params inside the form class, like string formatting.
111
- * `before_save`: run before save method.
112
- * `after_save`: run after save method. You can enqueue some background job here for ie.
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
 
@@ -1,3 +1,3 @@
1
1
  module Linker
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
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
@@ -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 'before_set_params' do
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"
@@ -8,6 +8,10 @@ class CarsForm
8
8
 
9
9
  validates :name, presence: true
10
10
 
11
+ def after_init
12
+ self.name = 'default car name'
13
+ end
14
+
11
15
  def before_set_params params
12
16
  params['name'] = "#{params['name']} 2000"
13
17
  end
@@ -1,7 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe UsersForm do
4
- let(:users_form) { UsersForm.new(User.new) }
4
+ let(:users_form) { UsersForm.new }
5
5
  let(:users_form_existing_user) { UsersForm.new(User.find(1)) }
6
6
 
7
7
  it { expect(UsersForm._main_model).to eq('User') }
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.10
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-10-30 00:00:00.000000000 Z
11
+ date: 2015-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport