Module: Siphon::Boilerplate::InstanceMethods
- Defined in:
- lib/siphon/boilerplate.rb
Instance Method Summary collapse
- #initialize(params = {}) ⇒ Object
- #merge(relation) ⇒ Object
- #ransack ⇒ Object
-
#result ⇒ Object
memoized or it’ll break after attributes reconciled.
- #siphoned ⇒ Object
- #table_name ⇒ Object
Instance Method Details
#initialize(params = {}) ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/siphon/boilerplate.rb', line 24 def initialize( params = {}) @params = params || {} @params_ransack= @params.slice(*self.class.ransack_set) @params_siphon= @params.except(*self.class.ransack_set) self.order_by= @params["order_by"] super @params_siphon end |
#merge(relation) ⇒ Object
42 43 44 45 |
# File 'lib/siphon/boilerplate.rb', line 42 def merge(relation) @relation = @relation.merge(relation) self end |
#ransack ⇒ Object
38 39 40 |
# File 'lib/siphon/boilerplate.rb', line 38 def ransack @relation.search( params_ransack ) end |
#result ⇒ Object
memoized or it’ll break after attributes reconciled
52 53 54 55 56 57 58 59 |
# File 'lib/siphon/boilerplate.rb', line 52 def result @result ||= begin relation = siphoned.merge(ransack.result) # reconcile all params for the search form (?) self.attributes= attributes.merge(params_ransack) relation end end |
#siphoned ⇒ Object
47 48 49 |
# File 'lib/siphon/boilerplate.rb', line 47 def siphoned Siphon::Base.new(@relation).scope( self ) end |
#table_name ⇒ Object
34 35 36 |
# File 'lib/siphon/boilerplate.rb', line 34 def table_name self.class.model.table_name end |