【发布时间】:2017-02-12 23:13:53
【问题描述】:
我有一个正在开发的 ruby (sinatra) 应用程序,我的输入是一个 url 以及是否冗长(真或假),所以基本上是这样的:
网址如下所示:例如http://localhost:4567/git.company.com&v=false。
获取这些的代码是这样的:
get '/:url' do |tool_url|
url = params[:url].to_s
is_verbose = params[:v].to_s
我在不同的文件中分隔了不同的类,我将它们包含在我的主脚本中,如下所示:
Dir["#{File.dirname(__FILE__)}/lib/*.rb"].each { |f| require(f) }
(示例文件是这样的),gitlab.rb:
class Gitlab
$gitlab_token = 'TOKEN_GOES_HERE'
def initialize(url, v)
@@regex =~ /git.company.com/
@@gitlab_url = url
@@is_verbose = v
end
def check_gitlab(gitlab_url, is_verbose)
_gitlab_overall = '/health_check.json?token=#{gitlab_token}'
_gitlab_cache = '/health_check/cache.json?token=#{gitlab_token}'
_gitlab_database = '/health_check/database.json?token=#{gitlab_token}'
_gitlab_migrations = '/health_check/migrations.json?token=#{gitlab_token}'
unless is_verbose = true
CheckString.check_string_from_page('https://' + gitlab_url + gitlab_overall, 'success')
else
end
end
end
现在,我希望能够根据用户输入的 URL 动态地知道使用哪个“类”来完成某项工作,所以我的想法是遍历这些类以查找要匹配的特定变量与输入。
我需要这方面的指导,因为我已经坚持了很长一段时间了;我已经尝试了很多我能想到的东西,但没有一个奏效。
免责声明:这里请多多包涵,因为我对 Ruby 很陌生,而且我在 OOP 语言方面也不是很出色(实际上并没有太多地练习它们)。
编辑:我愿意接受任何建议,比如如果有比这更好的不同逻辑,请告诉我。
【问题讨论】: