Ah hah! A subtle change, for sure. A clear case of "it used to work"!

In my particular case, I simply switched to a <table> tag as I didn't need
the pagination, but I'm glad to know what caused the difference.

Tim


On Tue, Dec 16, 2014 at 8:08 AM, Ignacio Huerta <[email protected]> wrote:
>
> I'm pretty sure this commit provoked your problem:
>
> https://github.com/Hobo/hobo/commit/6fbb12e1db73f9a82ead69e93926613cab03282b
>
> I'll open an issue to investigate this further and create all the
> necessary test cases to ensure we cover all cases. Thanks for sharing!
>
> Warm regards,
> Ignacio
>
> El 13-12-2014 a las 14:30, Tim Griffin escribió:
> > It seems this error is arising from this line within
> >
> >     <page-nav param if="&this.method_defined?(:page_count) ||
> > this.method_defined?(:total_pages)" merge-attrs="&ajax_attrs" />
> >
> > It appears that method_defined? cannot be called on an /instance/ of
> > Array (although it can be called on the Array /class/):
> >
> > [tgriffin@mbp ~/Sites/crs] $ irb
> > 2.1.4 :004 > Array.method_defined?(:page_count)
> >  => false
> > 2.1.4 :006 > a = Array.new
> >  => []
> > 2.1.4 :007 > a.method_defined?(:total_pages)
> > NoMethodError: undefined method `method_defined?' for []:Array
> >
> > I see this listed as a problem
> > <
> http://stackoverflow.com/questions/8013773/testing-for-method-defined-on-activerecord-classes-doesnt-work-until-an-instan
> >
> > for uninstantiated ActiveRecord classes, but why is this a problem for a
> > built-in class like /Array?/
> >
> > For now, I will override the table-plus tag to drop the <page-nav> bit.
> >
> > Any other insight welcome!
> > Tim
> >
> >
> >
> >
> > On Friday, December 12, 2014 11:57:50 PM UTC-5, Tim Griffin wrote:
> >
> >     Hi all;
> >
> >
> >     In Hobo 2.1.1, I'm creating an array of OpenStructs to pass back to
> >     a table-plus for display. This certainly works nicely in Hobo
> >     2.0/Ruby 1.9.3, but I'm getting an odd error with 2.1.1/Rails
> >     4.0.8/Ruby/2.1.4:
> >
> >       undefined method `method_defined?' for #<Array:0x007fdb88622170>
> >       app/views/taglibs/application/company.dryml:848:in `block (8
> >     levels) in show_page__for_company'
> >
> >
> >     The Array I pass to a table-plus tag is created as follows:
> >
> >      def get_documents
> >         documents = Array.new
> >         files = Dir.glob(folder + "*.{pdf,PDF}")
> >         ...
> >
> >         # Go through each of the files retrieved, and extract their
> >     details to be usable
> >         r = 0
> >
> >         files.each do |doc|
> >           filing_date = "Unknown"
> >           filing = "Unknown"
> >
> >           filing_date, filing, filing_year =
> >     Filings.decode_filename(doc, self.entity_type_code)
> >
> >           if filing.present?
> >              documents[r] = OpenStruct.new(:doc_id => doc, :filing_date
> >     => filing_date, :filing => filing, :filing_year => filing_year)
> >              r = r + 1
> >           end
> >         end
> >         return documents
> >       end
> >
> >     A sample Array I passed to the table-plus tag is as follows:
> >
> >     [
> >     #<OpenStruct doc_id="711021-140619-IN.PDF", filing_date="140619",
> >     filing="Incorporation", filing_year="NA">,
> >     #<OpenStruct doc_id="711021-140619-ND.PDF", filing_date="140619",
> >     filing="Notice/Change of Directors", filing_year="NA">
> >     ]
> >
> >     And, the table-plus tag is nothing unusual:
> >
> >         <% documents = this.get_documents %>
> >                 <if test="&documents.present?">
> >                   <table-plus with="&documents"
> >     fields="filing,filing_date,filing_year, doc_id">
> >                   </table-plus>
> >                 </if>
> >
> >     Does anyone know why this might be causing the *undefined method
> >     `method_defined?' for Array* error?
> >
> >     Some new anomaly with Rails 4 / Ruby 2?
> >
> >     Many thanks,
> >     Tim
> >
> >
> >
> >
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Hobo Users" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> > an email to [email protected]
> > <mailto:[email protected]>.
> > To post to this group, send email to [email protected]
> > <mailto:[email protected]>.
> > Visit this group at http://groups.google.com/group/hobousers.
> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to a topic in the
> Google Groups "Hobo Users" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/hobousers/iK1cWYANfDg/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/hobousers.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "Hobo 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/hobousers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to