AperçuRuby Question design
Je vous écris un programme Ruby qui utilise des données de requêtes MySQL pour créer des URL de graphique. Une nouvelle exigence a récemment fait surface où nous pourrions avoir besoin de créer des graphiques avec des barres groupées à l'avenir. Donc, au lieu d'avoir un ensemble de données, je pourrais avoir n'importe quel nombre d'ensembles. À l'heure actuelle, le constructeur de mon objet BarChart ne prend qu'un seul tableau de données, et je cherche des moyens Ruby-like pour permettre plus d'un tableau de données.
Constructor actuel
#constructor
#title The title of the graph
#data The data that will go in the bar chart
#labels The labels that match the data
#x_axis_label The label for the x axis
#y_axis_label The label for the y axis
def initialize(title, data, labels, x_axis_label, y_axis_label)
@title, @data1, @labels, @x_axis_label, @y_axis_label =
title, data, labels, x_axis_label, y_axis_label
super(@title, @@type, @@size)
@url = to_url()
end
Ma tentative
Ma première pensée était d'utiliser args var.
#constructor
#title The title of the graph
#data The data that will go in the bar chart
#labels The labels that match the data
#x_axis_label The label for the x axis
#y_axis_label The label for the y axis
def initialize(title, *data, labels, x_axis_label, y_axis_label)
.....
end
Est-ce une bonne idée? ou y a-t-il une meilleure façon de s'y prendre?
Merci
Avec fusion! vous remplacez le paramètre par votre valeur par défaut. Vous pouvez le tester avec: p ({: a => 1} .merge! ({: A => 2})) – knut
Oups.Je voulais utiliser 'reverse_merge! 'D'ActiveSupport (il est assez facile de le faire si vous ne l'utilisez pas). Mais je vais le réparer. –