irie 1.0.5 → 1.1.0

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
  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.