Here's what I tried to make a function callable from multiple places:

#
# Server side setup for whimsy/project
#

require 'whimsy/asf'

require 'wunderbar/sinatra'
require 'wunderbar/vue'
require 'wunderbar/bootstrap/theme'
require 'ruby2js/filter/functions'
require 'ruby2js/filter/require'

disable :logging # suppress log of requests to stderr/error.log

helpers do
  def pmcs
    ASF::Committee.pmcs.map(&:name).sort
  end
  def ppmcs
    ASF::Podling.list
    .select {|podling| podling.status == 'current'}
    .map(&:name).sort
  end
end

#
# Sinatra routes
#


get '/' do
  redirect to('/invite')
end

get '/invite' do
  @view = 'invite'


  # get a complete list of PMC and PPMC names
  @pmcs = helpers.pmcs()

Any idea how to make this work?

Craig


> On Dec 17, 2017, at 5:02 PM, Sam Ruby <ru...@intertwingly.net> wrote:
> 
> On Sun, Dec 17, 2017 at 7:07 PM, Craig Russell <apache....@gmail.com> wrote:
>> One more thing.
>> 
>> I want to use a radio button on the discuss form:
>> 
>> (0) invite to submit an ICLA only
>> (0) invite to become a committer only
>> (0) invite to become a PMC member only
>> (0) invite to become a committer and PMC member
>> 
>> The vue control looks like:
>> 
>> <input type="radio" id="one" value="One" v-model="picked">
>> <label for="one">One</label>
>> <br>
>> <input type="radio" id="two" value="Two" v-model="picked">
>> <label for="two">Two</label>
>> <br>
>> <span>Picked: {{ picked }}</span>
>> 
>> What is the mapping to create a radio button?
> 
> I'm not sure I understand the question.  but instead of v-model, you
> likely want onClick.  To see a working example, look at:
> 
> https://github.com/apache/whimsy/blob/bc969805038b606d1b34c8d0b616ac2691cd0e09/www/secretary/workbench/views/parts.js.rb#L104
> 
> - Sam Ruby
> 
>>> On Dec 17, 2017, at 10:46 AM, Craig Russell <apache....@gmail.com> wrote:
>>> 
>>> 
>>>> On Dec 16, 2017, at 6:34 PM, Sam Ruby <ru...@intertwingly.net> wrote:
>>>> 
>>>>> The code in the existing main.rb in get '/invite' sets several variables 
>>>>> that will be useful in discuss and vote. DRY says this code should only 
>>>>> be in one place. How can variables be shared among multiple get and post 
>>>>> paths?
>>>> 
>>>> Two basic approaches come to mind.  In the roster tool, there is code
>>>> in the models directory that return hashes.  Also in
>>>> www/roster/main.rb, you can find a helper that is called by multiple
>>>> views.
>>> 
>>> What I'm trying to do is to get the @pmcs and @ppmcs variables sent to the 
>>> view from discuss, vote, and invite. The roster example shows no variables 
>>> outside the do... end blocks. The code to calculate these is simple but not 
>>> trivial.
>>> 
>>> So would you recommend doing the calculation in the common code and setting 
>>> the @variables in the do... end block. E.g.
>>> 
>>> pmcs = ASF::Committee.pmcs.map(&:name).sort
>>> ppmcs = ASF::Podling.list
>>>   .select {|podling| podling.status == 'current'}
>>>   .map(&:name).sort
>>> 
>>> get '/discuss' do
>>> @view = 'discuss'
>>> @pmcs = pmcs
>>> @ppmcs = ppmcs
>>> _html :app
>>> end
>>> 
>>> get '/vote' do
>>> @view = 'vote'
>>> @pmcs = pmcs
>>> @ppmcs = ppmcs
>>> _html :app
>>> end
>>> 
>>> 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

Craig L Russell
Secretary, Apache Software Foundation
c...@apache.org http://db.apache.org/jdo

Reply via email to