I've refactored a bit and now have: helpers do def projectsForUser(userName) pmcs = ASF::Committee.pmcs.map(&:name).sort ppmcs =ASF::Podling.list .select {|podling| podling.status == 'current'} .map(&:name).sort user = ASF::Person.find(userName) committees = user.committees.map(&:name) pmcs.select! {|pmc| committees.include?(pmc)} ppmcs.select! {|ppmc| committees.include?('incubator') | committees.include?(ppmc)} mailList = {} pmcs.each {|pmcName| pmc = ASF::Committee.find(pmcName) if pmc mailList[pmcName] = pmc.mail_list end } ppmcs.each {|ppmcName| ppmc = ASF::Committee.find(ppmcName) if ppmc mailList[ppmcName] = ppmc.mail_list end } hash = { 'pmcs' => pmcs, 'ppmcs' => ppmcs, 'pmcmail' => mailList } end end
... @pmcs = projects['pmcs'] @ppmcs = projects['ppmcs'] @pmc_mail = projects['pmcmail'] Seems to work ok. Can anyone suggest a more "conventional" way to construct the pmcmail hash? Seems there should be a way to create a hash from two other hashes instead of the each... if... routines. If there are more "conventional" ways to express the helpers projectForUser I'd like to hear that also. Craig > On Dec 28, 2017, at 12:35 PM, Sam Ruby <ru...@intertwingly.net> wrote: > > On Thu, Dec 28, 2017 at 1:37 PM, Craig Russell <apache....@gmail.com> wrote: >> Dropping helpers. made it work. >> >> So is helpers a magic ruby thing? I read about ApplicationHelper but that's >> not directly applicable. > > Instead of multiple inheritance, Ruby has single inheritance > classes... and modules. Sinatra defines a module called > Sinatra::Helpers that is included in each view, and provides a > convenient syntax for you to add methods to that module. You should > be able to achieve the same effect (with less magic) by adding methods > directly to Sinatra::Helpers, thus: > > module Sinatra::Helpers > def pmcs > ASF::Committee.pmcs.map(&:name).sort > end > def ppmcs > ASF::Podling.list > .select {|podling| podling.status == 'current'} > .map(&:name).sort > end > end > >> Craig > > - Sam Ruby > >>> On Dec 28, 2017, at 4:11 AM, Sam Ruby <ru...@intertwingly.net> wrote: >>> >>>> >>>> >>>> # get a complete list of PMC and PPMC names >>>> @pmcs = helpers.pmcs() >>> >>> Drop 'helpers.' >>> >>>> Any idea how to make this work? >>>> >>>> Craig >>> >>> - Sam Ruby >> >> Craig L Russell >> Secretary, Apache Software Foundation >> c...@apache.org http://db.apache.org/jdo >> Craig L Russell Secretary, Apache Software Foundation c...@apache.org http://db.apache.org/jdo