Lendo configurações de Info.plist

Depois de uma longa pesquisa sobre como acessar configurações personalizadas em Info.plist, encontrei ‘Variáveis ​​de ambiente em seu projeto RubyMotion’ de Rod Wilhelmy com um bom exemplo, que copio aqui. Mas perdi algumas informações adicionais, então vamos lá:

Rakefile

app.info_plist['ComYourAppFoo'] = 'Bar'

Lembre-se, você deve repetir o escopo “ComYourApp” para cada configuração personalizada. E você também terá que repetir esse escopo para cada chamada.

your_class.rb

foo = NSBundle.mainBundle.objectForInfoDictionaryKey('ComYourAppFoo')

Puxa, isso parece feio.

Graças à convenção de nomenclatura

O motivo da feiura? As chaves não devem colidir com as chaves existentes da Apple, então é melhor prefixá-las com “o ID do pacote do seu aplicativo ou o nome de domínio da sua empresa” – consulte iOS Developer Library> Information Property List Key Reference> Custom Keys .

Limpar

Seria ótimo ter o setter Motion :: Project :: App.setup app.info_plist_scoped[:foo]e um getter mainBundle como NSBundle.mainBundle.info_plist_scoped[:foo]esse automaticamente faz o escopo. Mas no momento não encontrei uma maneira de ensinar isso ao RubyMotion.