Ruby `graphql-client` Gem, как добавить динамически построенные запросы?
Используя собственный Github graphql-client
для Ruby, как можно создавать динамические запросы?
Например: вот запрос, который находит язык репо.
module RepoLanguage
Query = Gitwerk::Application::Client.parse <<-'GRAPHQL'
query($owner: String!, $name: String!) {
repository(owner: $owner, name: $name) {
name
primaryLanguage {
name
}
}
}
GRAPHQL
end
Но если мне нужно найти три языка репозиториев, запрос будет выглядеть так:
{
twbs: repository(owner: "twbs", name: "bootstrap-sass") {
name
primaryLanguage {
name
}
}
nookies: repository(owner: "maticzav", name: "nookies") {
name
primaryLanguage {
name
}
}
}
Это единственный способ создать такую строку / запрос?
query = repos.map do |repo|
<<-GRAPHQL
#{repo[:$owner]}-#{repo[:$name]}: query {
repository($owner: #{repo[:$owner]}, name: #{repo[:$name]}) {
name
primaryLanguage {
name
}
}
}
GRAPHQL
end.join('')
end
Если так...
- куда вы вообще положили этот звонок?
- А как это назвать?
- Есть ли способ лучше?
- вызов для создания запроса должен принимать объект в качестве аргумента. Как лучше всего вызвать это с контроллера?