tramway 0.4.6 → 0.4.8

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
  SHA256:
3
- metadata.gz: 57af927fcbb72fd669c6c8b7f480c37b3a83abe44cd84cf9fbabcb2cfa842786
4
- data.tar.gz: ed23bd825f9bb892302f446366ad26420a84c0512af4627c5dd24fd239de7feb
3
+ metadata.gz: e496f3ab6336d7f29b0b0021ef04b2bc18353ca3049406dd59671fbb8638d48f
4
+ data.tar.gz: 7863120a81d6195f4e60bcae4d24a43845a6a184621bfe10ecc4dfcb8c83ff4c
5
5
  SHA512:
6
- metadata.gz: 0ed0b00d4f70aa52fa11299c274467e04ecd4070d9cad5ef63befe2c380186e24d13a9c7545faee0178587085f129b0af3c5f1e7376f66dea2bccf3219382c6f
7
- data.tar.gz: 8862017bcd151691898293a7c4756138601ac8fd89ae6f4509024c3448c2740451e956f0ebfe83a6f42890ea1fcbfbf61a55afb6d5101b8b17cbe7dd5acf8efa
6
+ metadata.gz: 374c6d983df5d172bf08e9f33fecb37abe192e4e6b8fd0a8863c3cd367f77206238abf05edfa7c0501919c860d90ee790fa16be721bc4c70adb2ad51245170fe
7
+ data.tar.gz: 6876ad8aef86197b3b56c64cc07eddfcc9943aaa504d20b3d970d55e2fe197df16d6b5d28876d63cee75bca26e287fcc2ed078e3e420c5958607eac27fe78abe
data/README.md CHANGED
@@ -18,6 +18,12 @@ gem "tramway"
18
18
  gem "view_component"
19
19
  ```
20
20
 
21
+ OR
22
+
23
+ ```shell
24
+ bundle add tramway view_component
25
+ ```
26
+
21
27
  ## Usage
22
28
 
23
29
  ### Tramway Entities
@@ -322,7 +328,21 @@ class UserForm < Tramway::BaseForm
322
328
  end
323
329
  ```
324
330
 
325
- #### Update and Destroy
331
+ ### Assign values
332
+
333
+ Tramway Form provides `assign` method that allows to assign values without saving
334
+
335
+ ```ruby
336
+ class UsersController < ApplicationController
337
+ def update
338
+ @user = tramway_form User.new
339
+ @user.assign params[:user] # assigns values to the form object
340
+ @user.reload # restores previous values
341
+ end
342
+ end
343
+ ```
344
+
345
+ ### Update and Destroy
326
346
 
327
347
  Read [behave_as_ar](https://github.com/Purple-Magic/tramway#behave_as_ar) section
328
348
 
@@ -3,6 +3,7 @@
3
3
  require 'tramway/decorators/name_builder'
4
4
  require 'tramway/decorators/association'
5
5
  require 'tramway/decorators/collection_decorator'
6
+ require 'tramway/helpers/decorate_helper'
6
7
  require 'tramway/utils/render'
7
8
  require 'tramway/duck_typing'
8
9
 
@@ -13,6 +14,7 @@ module Tramway
13
14
  include Tramway::Decorators::CollectionDecorators
14
15
  include Tramway::Utils::Render
15
16
  include Tramway::DuckTyping::ActiveRecordCompatibility
17
+ include Tramway::Helpers::DecorateHelper
16
18
 
17
19
  attr_reader :object
18
20
 
@@ -45,6 +45,10 @@ module Tramway
45
45
  end
46
46
  end
47
47
 
48
+ def assign(params)
49
+ __submit params
50
+ end
51
+
48
52
  def method_missing(method_name, *args)
49
53
  if method_name.to_s.end_with?('=') && args.count == 1
50
54
  object.public_send(method_name, args.first)
@@ -7,9 +7,12 @@ module Tramway
7
7
  # Provides methods into Rails ActionController
8
8
  #
9
9
  module DecorateHelper
10
+ # :reek:NilCheck { enabled: false } because checking for nil is not a type-checking issue but business logic
10
11
  def tramway_decorate(object_or_array, decorator: nil)
11
12
  return [] if Tramway::Decorators::CollectionDecorators.collection?(object_or_array) && object_or_array.empty?
12
13
 
14
+ return if object_or_array.nil?
15
+
13
16
  Tramway::Decorators::ClassHelper.decorator_class(object_or_array, decorator).decorate object_or_array
14
17
  end
15
18
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tramway
4
- VERSION = '0.4.6'
4
+ VERSION = '0.4.8'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tramway
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - kalashnikovisme
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-05-20 00:00:00.000000000 Z
12
+ date: 2024-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dry-struct