tramway 0.4.6 → 0.4.8

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