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 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