active_record-associated_object 0.8.1 → 0.8.2

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: 76dd7495e0e2e855e708737a875ff879a8ec840d68f5c80ad4733ece3b72dda6
4
- data.tar.gz: '09b38711104836c6c222a1663ddf4e7248ae784b727b597ed61f6436ab2bf17b'
3
+ metadata.gz: 5816013890fc0f6868149661030643f47028edbb6a188d5014e7fd699e0138bd
4
+ data.tar.gz: ef0c4be8afb96727e5f379c988632ec44f0f77d105b8aadde944ac48362b7385
5
5
  SHA512:
6
- metadata.gz: 06fc0e959dedecab41a3c0d48d846eda454bd69c48fe8042cad1378c408fd919f688c2e07d5a26d675316556210ae25796585bc56438c8c66e3092c52fe3b1f6
7
- data.tar.gz: bd35d99fc113f26d2b49e1fde335db7c28af90e7985ea0d2c60dc9dd8188e05cc2c4102bbe4edf5c45998d2b5cc96cd8f00bcd8974acf858450db479432c84f8
6
+ metadata.gz: 5f80f20322bf4661515fb6235c9d034e7ac68a22bc17e269971c8b2a1f5782affb28471316b65402bab66deedc9f63f322032fa216100c6966cd514c7421a100
7
+ data.tar.gz: 9def815025bf60d33b06ba6f7c9c185a59fca016f3e88a72d65fb64408dd0b4e7a34aea63c5a75de61004a64a80b86bd26e368ed021d105ed32bf6cca3a3f037
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- active_record-associated_object (0.8.1)
4
+ active_record-associated_object (0.8.2)
5
5
  activerecord (>= 6.1)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -85,6 +85,17 @@ class Post::Publisher < ActiveRecord::AssociatedObject
85
85
  end
86
86
  ```
87
87
 
88
+ ### See Associated Objects in action
89
+
90
+ The team at [Flipper](https://www.flippercloud.io) used Associated Objects to help keep their new billing structure clean.
91
+
92
+ You can see real life examples in these blog posts:
93
+
94
+ - [Organizing Rails Code with ActiveRecord Associated Objects](https://garrettdimon.com/journal/posts/organizing-rails-code-with-activerecord-associated-objects)
95
+ - [Data Modeling Entitlements and Pricing for SaaS Applications](https://garrettdimon.com/journal/posts/data-modeling-saas-entitlements-and-pricing)
96
+
97
+ If your team is using Associated Objects, we're more than happy to feature any write ups here.
98
+
88
99
  ### Use the generator to help write Associated Objects
89
100
 
90
101
  To set up the `Post::Publisher` from above, you can call `bin/rails generate associated Post::Publisher`.
@@ -2,6 +2,6 @@
2
2
 
3
3
  module ActiveRecord
4
4
  class AssociatedObject
5
- VERSION = "0.8.1"
5
+ VERSION = "0.8.2"
6
6
  end
7
7
  end
@@ -8,6 +8,7 @@ class AssociatedGenerator < Rails::Generators::NamedBase
8
8
 
9
9
  def connect_associated_object
10
10
  record_file = "#{destination_root}/app/models/#{record_path}.rb"
11
+
11
12
  raise "Record class '#{record_klass}' does not exist" unless File.exist?(record_file)
12
13
 
13
14
  inject_into_class record_file, record_klass do
@@ -20,8 +21,8 @@ class AssociatedGenerator < Rails::Generators::NamedBase
20
21
  # The `:name` argument can handle model names, but associated object class names aren't singularized.
21
22
  # So these record and associated_object methods prevent that.
22
23
  def record_path = record_klass.downcase.underscore
23
- def record_klass = name.deconstantize
24
+ def record_klass = name.camelize.deconstantize
24
25
 
25
- def associated_object_path = associated_object_class.downcase.underscore
26
- def associated_object_class = name.demodulize
26
+ def associated_object_path = associated_object_class.underscore
27
+ def associated_object_class = name.camelize.demodulize
27
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_record-associated_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kasper Timm Hansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-19 00:00:00.000000000 Z
11
+ date: 2024-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -69,7 +69,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubygems_version: 3.5.6
72
+ rubygems_version: 3.5.18
73
73
  signing_key:
74
74
  specification_version: 4
75
75
  summary: Associate a Ruby PORO with an Active Record class and have it quack like