- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我一直无法通过中间人扩展的各个部分一致地访问数据。为了解释,这里有一个简单的示例扩展,它只设置变量:
class NextPrevious < Middleman::Extension
option :var1, true, 'A example variable.'
def initialize(app, options_hash={}, &block)
super
app.set :var2, true
@var3 = true
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> true
puts defined?(var2) ? var2 : false #=> true
puts defined?(@var3) ? @var3 : false #=> true
end
def manipulate_resource_list(resources)
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> true
puts defined?(var2) ? var2 : false #=> false
puts defined?(@var3) ? @var3 : false #=> true
end
helpers do
def test_helper
# test all variables
puts defined?(options.var1) ? options.var1 : false #=> false
puts defined?(var2) ? var2 : false #=> true
puts defined?(@var3) ? @var3 : false #=> false
end
end
end
因此给定三个变量、一个选项、一个全局设置和一个实例变量,所有三个方法都不能访问任何一个。 我需要所有这三种方法,因为我想收集一些数据(从 .yml),通过站点地图对其进行操作(使用 manipulate_resource_list
)并在助手中使用它。我不知道如何找到它们的范围结束的位置,或者如何正确地传递它们,因为我不太了解在加载过程中调用每个方法的位置或它们之间的关系。有什么建议吗?
最佳答案
我不想使用 @@var
或 $var
。扩展选项是执行此操作的预期方式,但正如您所发现的,全局助手位于全局中间人应用程序的上下文中,而不是扩展的上下文中。
执行此操作的一个好方法是从全局扩展注册表中提取扩展。因此,假设您的扩展名为 :next_previous
:
helpers do
def test_helper
opts = extensions[:next_previous].options
puts opts.defines_setting?(:var1) ? opts.var1 : false
end
end
请注意,options
属性实际上是 ConfigurationManager
的一个实例,因此可以使用 defines_setting?
之类的方法来检查设置,而不是 defined?
。
关于ruby - 如何通过中间人扩展访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20111941/
我想捕获我的计算机正在发送的数据包,修改它并发送它。我不能使用嗅探,因为它给了我数据包的副本。数据包本身被发送。我想停止发送数据包,更改它然后转发它 - MitM 攻击。 我怎样才能使用 scapy
如何使用来自标记的调用将自定义变量发送到局部变量。 "Title Goes here") %> /*trying to send a variable named title with "Title
当使用“middleman-blog”扩展在 Middleman 中生成一个简单的博客时,我得到一个布局文件,它只生成帖子的内容。 我想要的是获取当前帖子的标题并显示它。 我现在拥有的:
如何在中间人构建页面后运行自定义操作(例如,将文件复制到构建文件夹)? 我想将 Readme.md 文件从源代码放到构建目录。 最佳答案 您可以使用after_build Hook 。将以下代码添加到
这是堆栈跟踪, /Users/hadronsolutions/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_requir
我正在使用带 sprockets 的中间人将我的 js 和 css 文件打包到一个文件中。这很好用。但是我想知道是否可以在中间人中启用 sprockets 的指纹功能。 例如我的文件 all.js,其
这是堆栈跟踪, /Users/hadronsolutions/.rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/rubygems/core_ext/kernel_requir
我是 Middleman 的新手,在我的生活中,我似乎无法动态地为我在子目录和子目录上的导航设置事件类。 我有以下助手集,它适用于子目录(例如:/about/),但它不适用于子目录(例如:/about
尝试开始使用 Middleman 构建站点,我正在按照教程进行操作,但是当我启动服务器时,我总是得到“未知扩展名:livereload” 我已经有了 group :development do g
您好,想知道在模板中是否有一种简单的方法来访问当前翻译的语言字符串。 最佳答案 您可以通过 I18n.locale 访问它. 所以在 ERB 内部... ...在 HAML 中: = I18n.lo
我刚刚在 Azure 上注册了一个试用帐户,看看它是否对我来说是一个长期可行的平台。 使用具有各种 CMD 和启动脚本的网络 worker 角色,我成功地让 ruby 在云上工作 - 一条简单的“
你好想知道在模板中是否有一种简单的方法来访问当前翻译的 lang 字符串。 最佳答案 您可以使用 I18n.locale 访问它. 所以在 ERB 中...... ...在 HAML 中: = I1
我的计算机上有一些虚拟机,它们通过主机专用网络相互通信。 我想模拟这些机器之间的中间人攻击。我发现的所有运行 MITM 的工具都只是监视数据包,但我没有找到任何可以真正重放或更改它们的工具。 我发现了
所以我有一个关于图标,上面有一个链接。 "about" %> 这将产生这个: 在我添加任何样式之前,...图像链接出现问题。 但是一旦我添加了一些位置/尺寸样式 #about
我想记录 firefox 发送到服务器的所有内容,精确到每个字节,以便我可以在 python 客户端中重现它。所以我的想法是做一个快速而肮脏的黑客: 运行一个openssl s_server, 通过在
任何具有 Ruby 知识的人都知道是否可以使用 'simple-navigation 的 Padrino 兼容版本吗? '带有 Middleman 3.0 的 gem ? 我想实现多级导航 + 面包屑
运行 middleman build 时命令,set :css_dir 中指定的所有样式表文件编译为 .css扩展名。 我的问题是:如何排除 .scss来自编译过程的文件(以便内容保持不变并且不会编译
对于我的 Middleman-built website I have stored links and other information about all pages in a data fil
我为你们准备了一个简单的。 我想要一个特色内容部分,其中排除了当前文章 所以这可以通过 delete_if 使用 Middleman Blog: 但是我使用的是中间人代理,所以我无法访问 c
我刚刚第一次安装 Ruby 和 Middleman,我无法通过第一个“$ middleman init my_new_project”步骤。我已尝试使用谷歌搜索来解决我的问题,但不幸的是我找不到任何看
我是一名优秀的程序员,十分优秀!