detailed 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/detailed.rb +11 -13
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2efe8712c8cebafa02154279d77781c1c8c9ae0b
4
- data.tar.gz: 3cb6c4f19e28eb1867faa19fc94c77b708a3fa34
3
+ metadata.gz: 28e43c195327231d8e2e93365dff966ebdbc98ef
4
+ data.tar.gz: 53854de1aef853ca8085cabd40afc707b2ff9c13
5
5
  SHA512:
6
- metadata.gz: 5dd9307c2b7fd553f9de88db1e44ada0942b245e302db7418ac6fc6e01fc4b4f6f70612b2ee8571ba527f6d37161ca2b04d77572c938a3a8583f417c3989a26d
7
- data.tar.gz: 4626cdf7a0824c5df4d2223dd5de21c44fb97e9fdfbef36f929ef2cedb2d4e71aa2302778351c0b435252abedb2e4dae31252ade01d27b337f20b3c1fe613894
6
+ metadata.gz: 3247784accccc96c5465a21a0241fb46f102cc54f9b1485b332eee0d16fb6d67580a334f2f36b993add05ffdaaba66db0f7ea32e3fdb45f3c7cbf38e0cda11c9
7
+ data.tar.gz: 4f78a226d723cc07c99b9df0f2f3f8dfa1f46fc75ecac79f94f6b9df1b57616760d92bc2adc9cbd4a4e887f561f45ea2f7dbf1ca59a71ff03febc7bfff143ea3
@@ -16,23 +16,23 @@ module Detailed
16
16
 
17
17
  def all_with_details
18
18
  @subclasses ||= []
19
- @subclasses.inject(self.all) { |a,b| a.includes(:"details_of_#{b.name.tableize}") }
19
+ @subclasses.inject(self.unscoped) { |a,b| a.includes(:"details_of_#{b.name.tableize}") }
20
20
  end
21
21
 
22
22
  def request_details
23
23
  self.superclass.add_subclass(self)
24
24
 
25
25
  class_eval do
26
- #has_one :details, class_name: "#{self.superclass.name}#{self.name}Detail", dependent: :destroy
27
26
  accepts_nested_attributes_for :"details_of_#{self.name.tableize}"
28
- #default_scope :include => :details
29
- default_scope -> { includes(:"details_of_#{self.name.tableize}").joins(:"details_of_#{self.name.tableize}") }
27
+ default_scope do
28
+ eager_load :"details_of_#{self.name.tableize}"
29
+ end
30
30
 
31
31
  alias :details :"details_of_#{self.name.tableize}"
32
32
  alias :details= :"details_of_#{self.name.tableize}="
33
33
 
34
34
  after_initialize do
35
- self.details ||= Object.const_get("#{self.class.superclass.name}#{self.class.name}Detail").new
35
+ self.details ||= "#{self.class.superclass.name}#{self.class.name}Detail".constantize.new if self.new_record?
36
36
  end
37
37
 
38
38
  alias :__old_method_missing :method_missing
@@ -59,14 +59,14 @@ module Detailed
59
59
  raise e
60
60
  end
61
61
  end
62
-
62
+
63
63
  def method_missing a, *b
64
64
  __old_method_missing a, *b
65
65
  rescue NoMethodError, NameError => e
66
66
  begin
67
67
  details.send a, *b
68
68
  rescue NoMethodError, NameError
69
- raise e
69
+ raise e
70
70
  end
71
71
  end
72
72
 
@@ -85,15 +85,13 @@ module Detailed
85
85
  module AssociationScope
86
86
  def self.included cl
87
87
  cl.class_eval do
88
- def maybe_split(table, field, reflection, scope)
88
+ def maybe_split(table, field, reflection)
89
89
  if field.match /\./
90
90
  table, field = field.split(/\./, 2)
91
91
  table = alias_tracker.aliased_table_for(table, table_alias_for(reflection, self.reflection != reflection))
92
-
93
- #scope = scope.merge()
94
92
  end
95
93
 
96
- [table, field, scope]
94
+ [table, field]
97
95
  end
98
96
 
99
97
  # Extend add_constraints support for "table.column" notation
@@ -132,8 +130,8 @@ module Detailed
132
130
  end
133
131
 
134
132
  # this is our addition
135
- table, key, scope = maybe_split(table, key, reflection, scope)
136
- foreign_table, foreign_key, scope = maybe_split(foreign_table, foreign_key, reflection, scope)
133
+ table, key = maybe_split(table, key, reflection)
134
+ foreign_table, foreign_key = maybe_split(foreign_table, foreign_key, reflection)
137
135
  # end
138
136
 
139
137
  if reflection == chain.last
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: detailed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marcin Łabanowski
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-31 00:00:00.000000000 Z
11
+ date: 2014-02-05 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: An ActiveRecord module giving you the power of multiple table inheritance
14
14
  while still resorting to an API resembling single table inheritance