configatron单身人士?为什么我不能在课堂上访问configatron

约翰

我正在使用configatron存储我的配置值。我可以毫无问题地访问配置值,除非范围在类的方法之内。

我正在使用ruby 2.0.0的configatron 3.0.0-rc1

这是我在名为“ tc_tron.rb”的单个文件中使用的源

require 'configatron'

class TcTron  
  def simple(url)
    puts "-------entering simple-------"
    p url
    p configatron
    p configatron.url
    p configatron.database.server
    puts "-------finishing simple-------"
  end
end

# setup the configatron.  I assume this is a singleton
configatron.url = "this is a url string"
configatron.database.server = "this is a database server name"

# this should print out all the stuff in the configatron
p configatron
p configatron.url
p configatron.database.server

# create the object and call the simple method.
a = TcTron.new
a.simple("called URL")

# this should print out all the stuff in the configatron
p configatron
p configatron.url
p configatron.database.server

当我运行代码时,我得到

{:url=>"this is a url string", :database=>{:server=>"this is a database server name"}}
"this is a url string"
"this is a database server name"
-------entering simple-------
"called URL"
{}
{}
{}
-------finishing simple-------
{:url=>"this is a url string", :database=>{:server=>"this is a database server name"}}
"this is a url string"
"this is a database server name"

在“输入简单”和“完成简单”之间,我不知道为什么我没有得到configatron单例。

我想念什么?

亚历克斯·布拉德

当前的实现configatron

module Kernel
  def configatron
    @__configatron ||= Configatron::Store.new
  end
end

这里

因为Kernel包含在Object其中,所以该方法可在每个对象中使用。但是,b / c方法仅设置一个实例变量,该存储将仅对每个实例可用。宝石的奇怪选择,其全部工作是提供可在全球范围内访问的商店。

在v2.4中,他们使用类似的方法访问单例,这可能会更好

module Kernel
  # Provides access to the Configatron storage system.
  def configatron
    Configatron.instance
  end
end

这里

看来您可以自己解决此问题,require 'configatron/core'而避免使用猴子补丁程序,并提供自己的单例包装器。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么我不能在课堂上使用System.ComponentModel.DataAnnotations?

来自分类Dev

为什么我在课堂上遇到适用性错误?

来自分类Dev

Rails:configatron

来自分类Dev

如何在课堂上访问浏览器版本

来自分类Dev

如何在课堂上访问PDO对象?

来自分类Dev

Android如何在课堂上访问资源?

来自分类Dev

为什么有角度的服务单身人士?

来自分类Dev

为什么有角度的服务单身人士?

来自分类Dev

当我可以在自己的计算机上访问时,为什么不能在局域网中访问SockectServer?

来自分类Dev

为什么我不能在界面中访问此字段?

来自分类Dev

为什么我不能在Vue中访问html canvas?

来自分类Dev

为什么我不能在Mirth中访问xml消息?

来自分类Dev

为什么我不能在班级中访问变量。Python

来自分类Dev

C ++为什么我的单身人士不保持会员价值

来自分类Dev

我怎样才能在课堂上获得属性

来自分类Dev

为什么在课堂上使用bottle时方法的自我多余?

来自分类Dev

为什么单身人士无法直接实现IObjectReference?

来自分类Dev

为什么泽西岛导致单身人士班不上班?

来自分类Dev

课堂上的_description是什么?为什么使用它?

来自分类Dev

为什么我不能在PHP函数中访问我的私有变量?

来自分类Dev

为什么我不能在 PHP 7 中访问我的会话变量?

来自分类Dev

为什么协议要比课堂上的快速好?

来自分类Dev

为什么Firefox注入“严格使用”?在课堂上的方法?

来自分类Dev

为什么我的Webhook代码无法在HTTPS上访问

来自分类Dev

为什么我不能在控制器中访问此ng-model变量?

来自分类Dev

为什么我不能在ClojureScript中访问此JS对象的道具?

来自分类Dev

为什么我不能在gcc的初始值设定项中访问默认参数?

来自分类Dev

为什么我不能在闭包中访问局部变量

来自分类Dev

为什么我不能在Active Record回调中直接访问实例变量?

Related 相关文章

  1. 1

    为什么我不能在课堂上使用System.ComponentModel.DataAnnotations?

  2. 2

    为什么我在课堂上遇到适用性错误?

  3. 3

    Rails:configatron

  4. 4

    如何在课堂上访问浏览器版本

  5. 5

    如何在课堂上访问PDO对象?

  6. 6

    Android如何在课堂上访问资源?

  7. 7

    为什么有角度的服务单身人士?

  8. 8

    为什么有角度的服务单身人士?

  9. 9

    当我可以在自己的计算机上访问时,为什么不能在局域网中访问SockectServer?

  10. 10

    为什么我不能在界面中访问此字段?

  11. 11

    为什么我不能在Vue中访问html canvas?

  12. 12

    为什么我不能在Mirth中访问xml消息?

  13. 13

    为什么我不能在班级中访问变量。Python

  14. 14

    C ++为什么我的单身人士不保持会员价值

  15. 15

    我怎样才能在课堂上获得属性

  16. 16

    为什么在课堂上使用bottle时方法的自我多余?

  17. 17

    为什么单身人士无法直接实现IObjectReference?

  18. 18

    为什么泽西岛导致单身人士班不上班?

  19. 19

    课堂上的_description是什么?为什么使用它?

  20. 20

    为什么我不能在PHP函数中访问我的私有变量?

  21. 21

    为什么我不能在 PHP 7 中访问我的会话变量?

  22. 22

    为什么协议要比课堂上的快速好?

  23. 23

    为什么Firefox注入“严格使用”?在课堂上的方法?

  24. 24

    为什么我的Webhook代码无法在HTTPS上访问

  25. 25

    为什么我不能在控制器中访问此ng-model变量?

  26. 26

    为什么我不能在ClojureScript中访问此JS对象的道具?

  27. 27

    为什么我不能在gcc的初始值设定项中访问默认参数?

  28. 28

    为什么我不能在闭包中访问局部变量

  29. 29

    为什么我不能在Active Record回调中直接访问实例变量?

热门标签

归档