草庐IT

query-dsl

全部标签

ruby - 我需要手动构建 Ruby DSL 的哪些部分?

如果我想在Ruby1.9或JRuby中构建DSL,我是否需要手动完成以下任何阶段:乐行解释解析即时编译显然,作为一名程序员,我不喜欢尽可能多地编写实际代码,所以我希望这些步骤都不需要手工劳动:) 最佳答案 这一切都是使用元编程完成的。您不必执行您列出的任何事情。JamisBuck在WritingDomainSpecificLanguages上有一篇不错的博文使用Ruby。 关于ruby-我需要手动构建RubyDSL的哪些部分?,我们在StackOverflow上找到一个类似的问题:

ruby - 如何使用 Puppet Ruby DSL 定义类继承

我有一个Puppet类“Ruby”:#init.ppclassruby{package{'libldap-ruby1.8':ensure=>'installed'}}然后我有一个用PuppetRubyDSL编写的类,它应该继承这个Puppet类:#ldap.rbhostclass'ruby::ldap'do(...)end如何定义ruby​​::ldap继承ruby​​? 最佳答案 遗憾的是,Google网上论坛上的Puppet开发人员不回答任何相关问题(link1、link2)。 关于

ruby-on-rails - Rails 地理编码器 - Google Geocoding API 错误 : over query limit - PRODUCTION ONLY

geocodergem已停止仅在生产环境中工作。它在开发中完美运行,符合预期。我在Ubuntu16.04上使用ruby​​2.3.1和rails4.2.6当我在开发中从rails控制台运行ModelName.near("zip_code","radius")时,我会按预期返回相关行。当我在服务器中运行相同的命令时,它返回GoogleGeocodingAPI错误:超出查询限制。更新lat和long在生产环境中不保存,在开发中保存。 最佳答案 我遇到了类似的问题。将我的googleapikey添加到config/initializers

ruby - 为 DSL 翻译 block 和语句

我想编写一个简单的RubyDSL来将一些语句和表达式翻译成另一种语言。一个基本的例子是:some_function{t+2}这里,t不是ruby​​变量,因此block不能(也不能!)由Ruby求值。所以我最好的选择是使用解析输出(或AST)自己进行翻译。为此,我可以使用ParseTree和ruby​​2ruby。但是,我还有其他想要使用的结构,例如:1.upto(10){|x|some_function{t+x}}在这里,我有一个局部变量,我需要获取它的值才能进行翻译。但是,在执行block评估的函数中,我无权访问调用block的局部变量。如果它是一个全局变量($x),我可以检查它的

ruby-on-rails - rails : Structuring a query involving a polymorphic association and STI

我正在尝试查找关于照片的10条最新评论,以便将它们集成到我的Rails3.0.3应用程序的事件提要中。我有一个Photo模型,它使用单表继承从Upload模型继承:classUpload:commentable...end多态关联commentable在Comment模型中描述:classCommenttrueend到目前为止还不错吧?当我尝试构建查询时,问题就来了。经过反复试验,我想出了位于照片模型中的这段代码:defself.latest_comments(count=10)Comment.where(:commentable_type=>"Upload")\.joins("INN

java - JRuby DSL封装,排除标准库

我正在尝试制作一个Java程序,允许用户使用我编写的RubyDSL执行一些有限的脚本。用户编写的脚本被保存到JRuby中的Proc对象中。问题在于用户仍然可以访问Ruby标准的方法,例如File.new,或者创建类,或者基本上与程序或计算机的其他内部逻辑混淆。有没有办法使用JRuby或Ruby甚至Java将用户的脚本限制为仅受DSL的约束?或者至少删除用户对某些类的访问权限? 最佳答案 由于您在JRuby下运行,您可以使用Javasecuritypolicy(policyfiledocumentation)以防止用户执行文件或网络I

java - 注释是 Java 中的某种 DSL 吗?

在一堆XML配置文件之后,我看到Java转向基于注释的配置。注释在这里扮演着DSL的角色吗?是不是因为Java的静态特性?我在Ruby中思考,它没有(afaik)那样的东西。是因为Ruby有很好的元编程能力吗?是否有其他选择(我的意思是除了使用一堆.xml文件之外) 最佳答案 基本上,注释是一种工具,允许您在编译时处理源文件,并执行与文件中找到的注释相对应的操作(可能派生新源)。它们在很多方面都非常有用,例如明确约束同时避免代码困惑或丰富某些方法的行为。我不会说它们与Ruby的DSL如此相似,因为在这种情况下,您可以使用特定语法注释

ruby-on-rails - rails : How can I set the route for a method which doesn't require an :id parameter but instead requires 2 query parameters

我有一个列表表,其中包含一个列表模型和一个listings_controller类。我写了一个需要2个参数的方法:纬度和经度。然后,它会检索该坐标周围5公里左右的列表。在listings_controller中,这是我写的那个方法:defaroundlat=params[:latitude]long=params[:longitude]@surroundings=Listing.where("latitude=?andlongitude=?",lat,long)end我想做的是在我的routes.rb文件中设置一个url,当客户端浏览器调用该url时,它将提供纬度和经度作为2个参数。不

ruby - 导轨 : control ordering of query parameters in url_for?

我想生成一个URL,其中“p=1”查询参数出现在URL的末尾,例如:/path?foo=X&bar=Y&p=1生成URL时是否可以控制查询参数的顺序:url_for(params.merge({p:page_num}))?更新:我试过了ChuckE'ssuggestionbelow.事实证明,在Ruby1.9中,哈希已经排序,因此ActiveSupport::OrderedHash中的代码实际上是空操作。您可以使用Ruby1.9验证顺序是否已保留:>>h={one:1,two:2,three:3}{:one=>1,:two=>2,:three=>3}>>f=h.except(:one)

ruby - 如何在 Ruby 中创建这个小型 DSL?

我的职能是:defhello(str)puts"hello#{str}"enddefhello_scope(scope,&block)#???end我想在我的方法block中临时扩充一个函数。在hello_scope,我只是想在scope前面加上字符串到str在将其传递给原始hello之前方法。这是一个例子:hello'world'#=>helloworldhello_scope"welcome!"dohello'bob'#=>welcome!hellobobhello'alice'#=>welcome!helloaliceend当涉及到Ruby中的这类事情时,我有点菜鸟。谁能帮我优雅