irie 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5f409d1f391aa9e53304a97e6f6357ffc40d5ea9
4
- data.tar.gz: 81f44151ad5ce58128580295a60ee5b9a1f97a34
3
+ metadata.gz: 7c6c9a801e9a8f04df53747c167d6d3728a01036
4
+ data.tar.gz: ba8c401ad9d9f93307174aa57b266962a6d5fd86
5
5
  SHA512:
6
- metadata.gz: a258a07df2bcbfb081c50e47920830ed50f1e7492212e70d73d5b98dc25a12600baac8166b8ccb31d78af57731c8fb2a118a3cfc067b76257356731dc8deefc1
7
- data.tar.gz: c141fdc765c8371416c9668ae9c834ece91ad8b98d30cd4d70ebe58156b6ae9cc36f7cac68fbfb00772e910a005a3b788e6cffb58ea0edb724343d320a13a4c8
6
+ metadata.gz: 60706798105e74ef9ece7cee97190088034cf9fb2da66f6db0fb18ad29baa2d95b12a86a8d4444d2aa58729fa97616808220fa5ec8d4fbc64238f23bd3729cfa
7
+ data.tar.gz: acfafe39ace9dad293ce8b7572420217213b1fc7da0351df1013f5f88c06ab423f3c37e2e6b1b994cc51e207d8525d8995231790c307b68632532f34a5691cf5
data/README.md CHANGED
@@ -581,6 +581,12 @@ However, that might not catch all the initialization debug logging that could oc
581
581
  config.log_level = :debug
582
582
  ```
583
583
 
584
+ If you are really having trouble tracking down a problem and can live with the significant impact of increasing the number and result size of queries and are ok with a lot more data being logged, you can turn on more verbose debug logging via:
585
+
586
+ ```ruby
587
+ ::Irie.debug = ::Irie.verbose = true
588
+ ```
589
+
584
590
  ### restful_json
585
591
 
586
592
  The project was originally named [restful_json][restful_json]. Old commit tags corresponding to restful_json versions may be found in [legacy][legacy].
@@ -45,7 +45,7 @@ module Irie
45
45
  ordered_extension_syms.each do |arg_sym|
46
46
  if module_class_name = self.available_extensions[arg_sym]
47
47
  begin
48
- logger.debug("Irie::ClassMethods.extensions! #{self} including #{module_class_name}") if ::Irie.debug?
48
+ ::Irie.logger.debug("[Irie] Irie::ClassMethods.extensions! #{self} including #{module_class_name}") if ::Irie.debug?
49
49
  include module_class_name.constantize
50
50
  rescue NameError => e
51
51
  raise ::Irie::ConfigurationError.new "Failed to constantize '#{module_class_name}' with extension key #{arg_sym.inspect} in self.available_extensions. Error: \n#{e.message}\n#{e.backtrace.join("\n")}"
@@ -6,8 +6,10 @@ module Irie
6
6
  :available_extensions,
7
7
  :can_filter_by_default_using,
8
8
  :debug,
9
+ :verbose,
9
10
  :function_param_names,
10
11
  :id_is_primary_key_param,
12
+ :logger,
11
13
  :number_of_records_in_a_page,
12
14
  :predicate_prefix,
13
15
  :extension_include_order
@@ -17,6 +19,10 @@ module Irie
17
19
  CONTROLLER_OPTIONS.each{|name|attr_accessor name; define_method("#{name}?") { !!public_send(name) } }
18
20
  def configure(&blk); class_eval(&blk); end
19
21
 
22
+ def logger
23
+ @logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
24
+ end
25
+
20
26
  # Adds to extension_include_order and extension_include_order, e.g.
21
27
  # ::Irie.register_extension :boolean_params, '::Focal::Irie::BooleanParams'
22
28
  # Is equivalent to:
@@ -120,7 +126,7 @@ end
120
126
  # You shouldn't have to worry about configuring this typically.
121
127
  self.available_extensions = {}
122
128
 
123
- # If true, will logger.debug in instance methods to help with execution tracing at
129
+ # If true, will ::Irie.logger.debug in instance methods to help with execution tracing at
124
130
  # runtime.
125
131
  self.debug = false
126
132
  end
@@ -8,8 +8,10 @@ module Irie
8
8
  protected
9
9
 
10
10
  def autorender_count(options={}, &block)
11
- logger.debug("Irie::Extensions::AutorenderCount.autorender_count") if ::Irie.debug?
12
- render request.format.symbol => { count: @count }, status: 200, layout: false
11
+ ::Irie.logger.debug("[Irie] Irie::Extensions::AutorenderCount.autorender_count: count: #{@count}") if ::Irie.debug?
12
+ result = render(request.format.symbol => { count: @count }, status: 200, layout: false)
13
+ ::Irie.logger.debug("[Irie] Irie::Extensions::AutorenderCount.autorender_count: result: #{result.inspect}") if ::Irie.verbose?
14
+ result
13
15
  end
14
16
 
15
17
  end
@@ -12,13 +12,15 @@ module Irie
12
12
 
13
13
  # Converts request param value(s) 'NULL', 'null', and 'nil' to nil.
14
14
  def convert_param(param_name, param_value_or_values)
15
- logger.debug("Irie::Extensions::Conversion::NilParams.convert_param(#{param_name.inspect}, #{param_value_or_values.inspect})") if ::Irie.debug?
15
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Conversion::NilParams.convert_param(#{param_name.inspect}, #{param_value_or_values.inspect})") if ::Irie.debug?
16
16
  param_value_or_values = super if defined?(super)
17
17
  if param_value_or_values.is_a? Array
18
- param_value_or_values.map{|v| v && NILS.include?(v) ? nil : v }
18
+ result = param_value_or_values.map{|v| v && NILS.include?(v) ? nil : v }
19
19
  else
20
- param_value_or_values && NILS.include?(param_value_or_values) ? nil : param_value_or_values
20
+ result = param_value_or_values && NILS.include?(param_value_or_values) ? nil : param_value_or_values
21
21
  end
22
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Conversion::NilParams.convert_param: result: #{result.inspect}") if ::Irie.verbose?
23
+ result
22
24
  end
23
25
 
24
26
  end
@@ -10,10 +10,15 @@ module Irie
10
10
  end
11
11
 
12
12
  def index(options={}, &block)
13
- logger.debug("Irie::Extensions::Count.index") if ::Irie.debug?
13
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Count.index") if ::Irie.debug?
14
14
  return super(options, &block) unless aliased_param_present?(:count)
15
15
  @count = collection.count
16
- return respond_to?(:autorender_count, true) ? autorender_count(options, &block) : super(options, &block)
16
+
17
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Count.index: count: #{@count}") if ::Irie.debug?
18
+
19
+ result = respond_to?(:autorender_count, true) ? autorender_count(options, &block) : super(options, &block)
20
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Count.index: result: #{result.inspect}") if ::Irie.verbose?
21
+ result
17
22
  end
18
23
 
19
24
  end
@@ -30,16 +30,19 @@ module Irie
30
30
  protected
31
31
 
32
32
  def collection
33
- logger.debug("Irie::Extensions::IndexQuery.collection") if ::Irie.debug?
33
+ ::Irie.logger.debug("[Irie] Irie::Extensions::IndexQuery.collection") if ::Irie.debug?
34
34
  object = super
35
+ ::Irie.logger.debug("[Irie] Irie::Extensions::IndexQuery.collection starting after super with object=#{object.inspect}") if ::Irie.verbose?
35
36
  if self.custom_index_query
36
37
  # convert to relation if model class because proc expects a relation
37
38
  object = object.all unless object.is_a?(ActiveRecord::Relation)
38
39
  a = object.to_s
40
+ ::Irie.logger.debug("[Irie] Irie::Extensions::IndexQuery.collection before custom_index_query with object=#{object.inspect}") if ::Irie.verbose?
39
41
  object = self.custom_index_query.call(object)
42
+ ::Irie.logger.debug("[Irie] Irie::Extensions::IndexQuery.collection after custom_index_query with object=#{object.inspect}") if ::Irie.verbose?
40
43
  end
41
44
 
42
- logger.debug("Irie::Extensions::IndexQuery.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
45
+ ::Irie.logger.debug("[Irie] Irie::Extensions::IndexQuery.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
43
46
 
44
47
  set_collection_ivar object
45
48
  end
@@ -12,11 +12,15 @@ module Irie
12
12
  protected
13
13
 
14
14
  def collection
15
- logger.debug("Irie::Extensions::Limit.collection") if ::Irie.debug?
15
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Limit.collection") if ::Irie.debug?
16
16
  object = super
17
- aliased_params(:limit).each {|param_value| object = object.limit(param_value)}
17
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Limit.collection: starting after super with object=#{object.inspect}") if ::Irie.verbose?
18
+ limit_params = aliased_params(:limit)
19
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Limit.collection: limit_params=#{limit_params.inspect}") if ::Irie.debug?
20
+ limit_params.each {|param_value| object = object.limit(param_value.to_i)}
21
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Limit.collection: after limits with object=#{object.inspect}") if ::Irie.verbose?
18
22
 
19
- logger.debug("Irie::Extensions::Limit.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
23
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Limit.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
20
24
 
21
25
  set_collection_ivar object
22
26
  end
@@ -12,11 +12,15 @@ module Irie
12
12
  protected
13
13
 
14
14
  def collection
15
- logger.debug("Irie::Extensions::Offset.collection") if ::Irie.debug?
15
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Offset.collection") if ::Irie.debug?
16
16
  object = super
17
- aliased_params(:offset).each {|param_value| object = object.offset(param_value)}
17
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Offset.collection starting after super with object=#{object.inspect}") if ::Irie.verbose?
18
+ offset_params = aliased_params(:offset)
19
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Offset.collection: offset_params=#{offset_params.inspect}") if ::Irie.debug?
20
+ offset_params.each {|param_value| object = object.offset(param_value.to_i)}
21
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Offset.collection: after offsets object=#{object.inspect}") if ::Irie.verbose?
18
22
 
19
- logger.debug("Irie::Extensions::Offset.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
23
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Offset.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
20
24
 
21
25
  set_collection_ivar object
22
26
  end
@@ -85,8 +85,9 @@ module Irie
85
85
  protected
86
86
 
87
87
  def collection
88
- logger.debug("Irie::Extensions::Order.collection") if ::Irie.debug?
88
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection") if ::Irie.debug?
89
89
  object = super
90
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection starting after super with object=#{object.inspect}") if ::Irie.verbose?
90
91
 
91
92
  already_ordered_by = []
92
93
  aliased_params(:order).collect{|p| p.split(',')}.flatten.collect(&:strip).each do |split_param_name|
@@ -112,6 +113,7 @@ module Irie
112
113
  # if there is one.
113
114
  if self.can_be_ordered_by.include?(split_param_name) && !already_ordered_by.include?(attr_sym)
114
115
  join_to_apply = join_for_param(split_param_name)
116
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: can_be_ordered_by: calling joins(#{join_to_apply.inspect})") if ::Irie.verbose?
115
117
  object = object.joins(join_to_apply) if join_to_apply
116
118
  arel_table_column = get_arel_table(split_param_name)[attr_sym]
117
119
  raise ::Irie::ConfigurationError.new "can_order_by/define_params config problem: could not find arel table/column for param name #{split_param_name.inspect} and/or attr_sym #{attr_sym.inspect}" unless arel_table_column
@@ -119,7 +121,10 @@ module Irie
119
121
  sql_fragment = "#{arel_table_column.relation.name}.#{arel_table_column.name}#{direction == :desc ? ' DESC' : ''}"
120
122
  # Important note! the behavior of multiple `order`'s' got reversed between Rails 4.0.0 and 4.0.1:
121
123
  # http://weblog.rubyonrails.org/2013/11/1/Rails-4-0-1-has-been-released/
124
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: aliased_params: calling order(#{sql_fragment.inspect})") if ::Irie.debug?
125
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: aliased_params: before order object=#{object.inspect}") if ::Irie.verbose?
122
126
  object = object.order(sql_fragment)
127
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: aliased_params: after order object=#{object.inspect}") if ::Irie.verbose?
123
128
  already_ordered_by << attr_sym
124
129
  end
125
130
 
@@ -136,13 +141,16 @@ module Irie
136
141
  arel_table_column = get_arel_table(split_param_name)[attr_sym]
137
142
  raise ::Irie::ConfigurationError.new "default_order_by/define_params config problem: could not find arel table/column for param name #{split_param_name.inspect} and/or attr_sym #{attr_sym.inspect}" unless arel_table_column
138
143
  #TODO: is there a better way? not sure how else to order on joined table columns- no example
139
- sql_fragment = "#{arel_table_column.relation.name}.#{arel_table_column.name}#{direction == :desc ? ' DESC' : ''}"
144
+ sql_fragment = "#{arel_table_column.relation.name}.#{arel_table_column.name}#{direction == :desc ? ' DESC' : ''}"
145
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: default_ordered_by: calling order(#{sql_fragment.inspect})") if ::Irie.debug?
146
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: default_ordered_by: before order object=#{object.inspect}") if ::Irie.verbose?
140
147
  object = object.order(sql_fragment)
148
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: default_ordered_by: after order object=#{object.inspect}") if ::Irie.verbose?
141
149
  already_ordered_by << attr_sym
142
150
  end
143
151
  end
144
152
 
145
- logger.debug("Irie::Extensions::Order.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
153
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Order.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
146
154
 
147
155
  set_collection_ivar object
148
156
  end
@@ -14,7 +14,7 @@ module Irie
14
14
  end
15
15
 
16
16
  def index(options={}, &block)
17
- logger.debug("Irie::Extensions::Count.index") if ::Irie.debug?
17
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.index") if ::Irie.debug?
18
18
  return super(options, &block) unless aliased_param_present?(:page_count)
19
19
  @page_count = (collection.count.to_f / self.number_of_records_in_a_page.to_f).ceil
20
20
  return respond_to?(:autorender_page_count, true) ? autorender_page_count(options, &block) : super(options, &block)
@@ -23,17 +23,25 @@ module Irie
23
23
  protected
24
24
 
25
25
  def collection
26
- logger.debug("Irie::Extensions::Paging.collection") if ::Irie.debug?
26
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.collection") if ::Irie.debug?
27
27
  object = super
28
28
  page_param_value = aliased_param(:page)
29
29
  unless page_param_value.nil?
30
30
  page = page_param_value.to_i
31
31
  page = 1 if page < 1
32
- object = object.offset((self.number_of_records_in_a_page * (page - 1)).to_s)
33
- object = object.limit(self.number_of_records_in_a_page.to_s)
32
+ ::Irie.logger.debug
33
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.collection: aliased_params: before offset and limit with object=#{object.inspect}") if ::Irie.verbose?
34
+ object = object.offset(self.number_of_records_in_a_page.to_i * (page - 1))
35
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.collection: aliased_params: after offset/before limit with object=#{object.inspect}") if ::Irie.verbose?
36
+ object = object.limit(self.number_of_records_in_a_page.to_i)
37
+ begin
38
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.collection: aliased_params: after offset and limit with object=#{object.inspect}") if ::Irie.verbose?
39
+ rescue => e
40
+ binding.pry
41
+ end
34
42
  end
35
43
 
36
- logger.debug("Irie::Extensions::Paging.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
44
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
37
45
 
38
46
  set_collection_ivar object
39
47
  end
@@ -9,8 +9,10 @@ module Irie
9
9
  protected
10
10
 
11
11
  def autorender_page_count(options={}, &block)
12
- logger.debug("Irie::Extensions::Paging::AutorenderPageCount.autorender_page_count") if ::Irie.debug?
13
- render request.format.symbol => { page_count: @page_count }, status: 200, layout: false
12
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging::AutorenderPageCount.autorender_page_count: page_count: #{@page_count.inspect}") if ::Irie.debug?
13
+ result = render(request.format.symbol => { page_count: @page_count }, status: 200, layout: false)
14
+ ::Irie.logger.debug("[Irie] Irie::Extensions::Paging::AutorenderPageCount.autorender_page_count: result: #{result.inspect}") if ::Irie.verbose?
15
+ result
14
16
  end
15
17
 
16
18
  end
@@ -92,11 +92,15 @@ module Irie
92
92
  end
93
93
  end
94
94
 
95
+ IRIE_ARY_PREDICATES = [:not_eq_any, :not_eq_all, :eq_any, :eq_all, :in_any, :in_all, :not_in_any, :not_in_all, :matches_any, :matches_all, :does_not_match_all,
96
+ :gteq_any, :gteq_all, :gt_any, :gt_all, :lt_any, :lt_all, :lteq_any, :lteq_all]
97
+
95
98
  protected
96
99
 
97
100
  def collection
98
- logger.debug("Irie::Extensions::ParamFilters.collection") if ::Irie.debug?
101
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection") if ::Irie.debug?
99
102
  object = super
103
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection starting after super with object=#{object.inspect}") if ::Irie.verbose?
100
104
  already_filtered_by_split_param_names = []
101
105
  self.composite_param_to_param_name_and_arel_predicate.each do |composite_param, param_name_and_arel_predicate, split|
102
106
  if params.key?(composite_param)
@@ -106,10 +110,16 @@ module Irie
106
110
  # support for named_params/:through renaming of param name
107
111
  attr_sym = attr_sym_for_param(split_param_name)
108
112
  join_to_apply = join_for_param(split_param_name)
109
- object = object.joins(join_to_apply) if join_to_apply
113
+ if join_to_apply
114
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: composite_param_to_param_name_and_arel_predicate: object.joins(#{join_to_apply.inspect})") if ::Irie.debug?
115
+ object = object.joins(join_to_apply)
116
+ end
117
+ # note: we call it column but it is Arel::Attributes::Attribute
110
118
  arel_table_column = get_arel_table(split_param_name)[attr_sym]
111
119
  raise ::Irie::ConfigurationError.new "can_filter_by/define_params config problem: could not find arel table/column for param name #{split_param_name.inspect} and/or attr_sym #{attr_sym.inspect}" unless arel_table_column
120
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: composite_param_to_param_name_and_arel_predicate: before adding where col=#{arel_table_column.inspect} pred=#{predicate_sym.inspect} equal_to_or_in=#{converted_param_values.inspect} with object=#{object.inspect}") if ::Irie.verbose?
112
121
  object = object.where(arel_table_column.send(predicate_sym, converted_param_values))
122
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: composite_param_to_param_name_and_arel_predicate: after adding where col=#{arel_table_column.inspect} pred=#{predicate_sym.inspect} equal_to_or_in=#{converted_param_values.inspect} with object=#{object.inspect}") if ::Irie.verbose?
113
123
  already_filtered_by_split_param_names << split_param_name
114
124
  end
115
125
  end
@@ -118,16 +128,23 @@ module Irie
118
128
  unless already_filtered_by_split_param_names.include?(split_param_name) || predicates_to_default_values.blank?
119
129
  attr_sym = attr_sym_for_param(split_param_name)
120
130
  join_to_apply = join_for_param(split_param_name)
121
- object = object.joins(join_to_apply) if join_to_apply
131
+ if join_to_apply
132
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: default_filtered_by: object.joins(#{join_to_apply.inspect})") if ::Irie.debug?
133
+ object = object.joins(join_to_apply)
134
+ end
135
+ # note: we call it column but it is Arel::Attributes::Attribute
122
136
  arel_table_column = get_arel_table(split_param_name)[attr_sym]
123
137
  raise ::Irie::ConfigurationError.new "default_filter_by/define_params config problem: could not find arel table/column for param name #{split_param_name.inspect} and/or attr_sym #{attr_sym.inspect}" unless arel_table_column
124
138
  predicates_to_default_values.each do |predicate_sym, one_or_more_default_values|
125
- object = object.where(arel_table_column.send(predicate_sym, Array.wrap(one_or_more_default_values)))
139
+ one_or_more_default_values = Array.wrap(one_or_more_default_values) if IRIE_ARY_PREDICATES.include?(predicate_sym)
140
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: default_filtered_by: before adding where col=#{arel_table_column.inspect} pred=#{predicate_sym.inspect} equal_to_or_in=#{one_or_more_default_values.inspect} with object=#{object.inspect}") if ::Irie.verbose?
141
+ object = object.where(arel_table_column.send(predicate_sym, one_or_more_default_values))
142
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: default_filtered_by: after adding where col=#{arel_table_column.inspect} pred=#{predicate_sym.inspect} equal_to_or_in=#{one_or_more_default_values.inspect} with object=#{object.inspect}") if ::Irie.verbose?
126
143
  end
127
144
  end
128
145
  end
129
146
 
130
- logger.debug("Irie::Extensions::ParamFilters.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
147
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamFilters.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
131
148
 
132
149
  set_collection_ivar object
133
150
  end
@@ -93,13 +93,15 @@ module Irie
93
93
  end
94
94
 
95
95
  (find_arel_table = ->(last_resource_class, val) do
96
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamsToJoins.get_arel_table: calling anonymous function with #{last_resource_class.inspect}, #{val.inspect}") if ::Irie.debug?
96
97
  case val
97
98
  when String, Symbol
98
99
  find_assoc_resource_class.call(last_resource_class, val).arel_table
99
100
  when Hash
100
101
  find_arel_table.call(find_assoc_resource_class.call(last_resource_class, val.keys.first), val.values.first)
101
102
  else
102
- raise ::Irie::ConfigurationError.new "get_arel_table failed because unhandled #{val} in joins in through"
103
+ ::Irie.logger.debug("[Irie] Irie::Extensions::ParamsToJoins.get_arel_table: unhandled val in anonymous function: #{val.inspect}") if ::Irie.debug?
104
+ raise ::Irie::ConfigurationError.new "get_arel_table failed because unhandled(#{last_resource_class.inspect}, #{val.inspect}) in joins in through"
103
105
  end
104
106
  end)[resource_class, opts[:joins]]
105
107
  end
@@ -36,8 +36,9 @@ module Irie
36
36
  protected
37
37
 
38
38
  def collection
39
- logger.debug("Irie::Extensions::QueryFilter.collection") if ::Irie.debug?
39
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryFilter.collection") if ::Irie.debug?
40
40
  object = super
41
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryFilter.collection starting after super with object=#{object.inspect}") if ::Irie.verbose?
41
42
  # convert to relation if model class because proc expects a relation
42
43
  object = object.all unless object.is_a?(ActiveRecord::Relation)
43
44
 
@@ -45,11 +46,14 @@ module Irie
45
46
  self.param_to_query.each do |param_name, param_query|
46
47
  param_value = params[param_name]
47
48
  unless param_value.nil?
48
- object = param_query.call(object, convert_param(param_name.to_s, param_value))
49
+ converted_param = convert_param(param_name.to_s, param_value)
50
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryFilter.collection: param_to_query: before query call with object=#{object.inspect} and converted_param=#{converted_param.inspect}") if ::Irie.verbose?
51
+ object = param_query.call(object, converted_param)
52
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryFilter.collection: param_to_query: after query call with object=#{object.inspect}") if ::Irie.verbose?
49
53
  end
50
54
  end
51
55
 
52
- logger.debug("Irie::Extensions::QueryFilter.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
56
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryFilter.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
53
57
 
54
58
  set_collection_ivar object
55
59
  end
@@ -62,12 +62,16 @@ module Irie
62
62
 
63
63
  this_includes = self.action_to_query_includes[params[:action].to_sym] || self.all_action_query_includes
64
64
  if this_includes && this_includes.size > 0
65
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.collection: calling .includes(*#{this_includes.inspect})") if ::Irie.debug?
65
66
  object = object.includes(*this_includes)
66
67
  else
68
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.collection: not calling .includes") if ::Irie.debug?
67
69
  object
68
70
  end
69
71
 
70
- logger.debug("Irie::Extensions::QueryIncludes.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
72
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.collection: relation.to_sql so far: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
73
+
74
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.collection: object = #{object.inspect}") if ::Irie.verbose?
71
75
 
72
76
  set_collection_ivar object
73
77
  end
@@ -75,19 +79,22 @@ module Irie
75
79
  def resource
76
80
  cached = get_resource_ivar
77
81
  if cached
78
- logger.debug("Irie::Extensions::QueryIncludes.resource returning cached resource") if ::Irie.debug?
82
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.resource: returning cached resource") if ::Irie.debug?
79
83
  return cached
80
84
  end
81
85
  logger.debug("Irie::Extensions::QueryIncludes.resource") if ::Irie.debug?
86
+
82
87
  this_includes = self.action_to_query_includes[params[:action].to_sym] || self.all_action_query_includes
83
88
  if this_includes && this_includes.size > 0
84
89
  # can return the model class, so won't call bang (includes!) method
85
90
  object = end_of_association_chain.includes(*this_includes)
86
91
 
87
- logger.debug("Irie::Extensions::QueryIncludes.resource: end_of_association_chain.to_sql: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
92
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.resource: end_of_association_chain.to_sql: #{object.to_sql}") if ::Irie.debug? && object.respond_to?(:to_sql)
88
93
 
89
94
  set_resource_ivar object.send(method_for_find, params[:id])
90
95
  else
96
+ ::Irie.logger.debug("[Irie] Irie::Extensions::QueryIncludes.resource") if ::Irie.debug?
97
+
91
98
  super
92
99
  end
93
100
  end
@@ -10,8 +10,12 @@ module Irie
10
10
  end
11
11
 
12
12
  def index(options={}, &block)
13
- logger.debug("Irie::Extensions::NoLayout.index") if ::Irie.debug?
14
- options.merge!({layout: false}) unless request.format.html?
13
+ if request.format.html?
14
+ ::Irie.logger.debug("[Irie] Irie::Extensions::SmartLayout.index: not merging layout:false into options because not html") if ::Irie.debug?
15
+ else
16
+ ::Irie.logger.debug("[Irie] Irie::Extensions::SmartLayout.index: merging layout:false into options because format.html? is truthy") if ::Irie.debug?
17
+ options.merge!({layout: false}) unless request.format.html?
18
+ end
15
19
  super(options, &block)
16
20
  end
17
21
 
@@ -9,7 +9,7 @@ module Irie
9
9
  # values for all matching defined request params. Does *not* convert param
10
10
  # value with convert_param(...).
11
11
  def aliased_params(function_sym)
12
- logger.debug("Irie::ParamAliases.aliased_params(#{function_sym.inspect})") if ::Irie.debug?
12
+ ::Irie.logger.debug("[Irie] Irie::ParamAliases.aliased_params(#{function_sym.inspect})") if ::Irie.debug?
13
13
  if self.function_param_names.key?(function_sym)
14
14
  self.function_param_names[function_sym].select {|v| params.key?(v)}.collect {|param_name| params[param_name]}
15
15
  else
@@ -18,7 +18,7 @@ module Irie
18
18
  end
19
19
 
20
20
  def aliased_param_present?(function_sym)
21
- logger.debug("Irie::ParamAliases.aliased_param_key?(#{function_sym.inspect})") if ::Irie.debug?
21
+ ::Irie.logger.debug("[Irie] Irie::ParamAliases.aliased_param_key?(#{function_sym.inspect})") if ::Irie.debug?
22
22
  if self.function_param_names.key?(function_sym)
23
23
  self.function_param_names[function_sym].select {|v| params.key?(v)}.any? {|param_name| params.key?(param_name)}
24
24
  else
@@ -28,7 +28,7 @@ module Irie
28
28
 
29
29
  # Same as aliased_params(function_sym).first.
30
30
  def aliased_param(function_sym)
31
- logger.debug("Irie::ParamAliases.aliased_param(#{function_sym.inspect})") if ::Irie.debug?
31
+ ::Irie.logger.debug("[Irie] Irie::ParamAliases.aliased_param(#{function_sym.inspect})") if ::Irie.debug?
32
32
  aliased_params(function_sym).first
33
33
  end
34
34
 
@@ -1,3 +1,3 @@
1
1
  module Irie
2
- VERSION = '1.0.5'
2
+ VERSION = '1.1.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: irie
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gary S. Weaver
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-01-23 00:00:00.000000000 Z
12
+ date: 2015-10-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: inherited_resources
@@ -75,7 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
75
  version: '0'
76
76
  requirements: []
77
77
  rubyforge_project:
78
- rubygems_version: 2.2.1
78
+ rubygems_version: 2.4.5.1
79
79
  signing_key:
80
80
  specification_version: 4
81
81
  summary: Extend Inherited Resources.