tramway 1.0 → 1.0.0.1

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: df69b76e870abe067b6088b43e5a9731fcad1f07083aeb4c7c58d903421096f3
4
- data.tar.gz: 480513c2fe10f2c6caa3a1cdcc42b532f897b03d2df20862f4384e2a68c1c9f3
3
+ metadata.gz: 4ae5cf80f64299d99f74c529026b79d86560dc9de06ef48b5e2034e0cf586781
4
+ data.tar.gz: 8c7a9206caca2076a929c6f1d5f54680e7efb637f615a9513be2d2d720eaaf2a
5
5
  SHA512:
6
- metadata.gz: 7b7625417d873f2e99317a03bb70c99869c2416aa35161d53fb82375e199d3916303b8fb702dc0ab697b46d7fdc5c7df2e5447195080daf8f3ba6566dbe2b486
7
- data.tar.gz: 49a048f27dde057100b4e6be9b9073e6c65dc299e45ab8fbf1b41e929380ab186589fabf29695765b5586e755830437ad58f7f961f4d2ced52e354b8583a401d
6
+ metadata.gz: 8e74f1aa07fe82961906725383afbe2ca3b2ee307c0aecb04687f4e49db726aec9796a9bab6fd9dac9b61801a91ddf31f4d746591ac725cdf0e158beddc10c67
7
+ data.tar.gz: 3b0fc24f6e0f5f24540b85ec151af179b4bedd292713e8035932c11346e12d2ba685382d12a86e5deb97a5dd3e85ef5a8ff2e7c5a3aba9b6f676897a1adfc2a2
@@ -19,11 +19,11 @@ module Tramway
19
19
 
20
20
  @entities = entities
21
21
 
22
- @namespace = entity.route&.namespace
22
+ @namespace = entity.namespace
23
23
  end
24
24
 
25
25
  def show
26
- @entity = tramway_decorate model_class.find(params[:id]), namespace: entity.route&.namespace
26
+ @entity = tramway_decorate model_class.find(params[:id]), namespace: entity.namespace
27
27
  end
28
28
 
29
29
  private
data/config/routes.rb CHANGED
@@ -1,8 +1,14 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # rubocop:disable Metrics/BlockLength
3
4
  Tramway::Engine.routes.draw do
4
5
  Tramway.config.entities.each do |entity|
5
- segments = entity.name.split('/')
6
+ if entity.namespace.present?
7
+ entity.namespace.split('/') + entity.name.split('/')
8
+ else
9
+ entity.name.split('/')
10
+ end => segments
11
+
6
12
  resource_name = segments.pop
7
13
 
8
14
  define_resource = proc do
@@ -29,3 +35,4 @@ Tramway::Engine.routes.draw do
29
35
  end
30
36
  end
31
37
  end
38
+ # rubocop:enable Metrics/BlockLength
@@ -15,7 +15,7 @@ module Tramway
15
15
  class_name = decorator_class_name(object_or_array, namespace)
16
16
  class_name.constantize
17
17
  rescue NameError
18
- raise NameError, "You should define #{class_name} decorator class."
18
+ raise NameError, "You should define #{class_name_for_error(object_or_array, namespace)} decorator class."
19
19
  end
20
20
  end
21
21
 
@@ -50,6 +50,14 @@ module Tramway
50
50
 
51
51
  klass_name
52
52
  end
53
+
54
+ def class_name_for_error(object_or_array, namespace)
55
+ object = object_or_array.respond_to?(:first) ? object_or_array.first : object_or_array
56
+
57
+ base_class_name = "#{object.class.name}Decorator"
58
+
59
+ namespace.present? ? "#{namespace}::#{base_class_name}" : base_class_name
60
+ end
53
61
  end
54
62
  end
55
63
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tramway
4
- VERSION = '1.0'
4
+ VERSION = '1.0.0.1'
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: '1.0'
4
+ version: 1.0.0.1
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: 2025-10-31 00:00:00.000000000 Z
12
+ date: 2025-11-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: anyway_config