我正在研究分析ruby api客户端。在拨打电话时我发送了参数
dimensions = ["ga:hostName", "pagePath"]
metrics = ["pageValue", "ga:pageviews"]
.call_analytics(dimensions, metrics)
即使用户没有输入" ga:"当传递params时,代码应附加" ga:"在params。
我这样做了。
dimensions = dimensions.map{|a| ("ga:" + a.split(":").last).split}.flatten
metrics = metrics.map{|a| ("ga:" + a.split(":").last).split}.flatten
有更好的方法吗?
答案 0 :(得分:8)
["ga:hostName", "pagePath"]
.map{|s| s.sub(/\A(?!ga:)/, "ga:")}
#=> ["ga:hostName", "ga:pagePath"]
["pageValue", "ga:pageviews"]
.map{|s| s.sub(/\A(?!ga:)/, "ga:")}
#=> ["ga:pageValue", "ga:pageviews"]
或
["ga:hostName", "pagePath"]
.map{|s| s.start_with?("ga:") ? s : s.prepend("ga:")}
#=> ["ga:hostName", "ga:pagePath"]
["pageValue", "ga:pageviews"]
.map{|s| s.start_with?("ga:") ? s : s.prepend("ga:")}
#=> ["ga:pageValue", "ga:pageviews"]