标签: block

红宝石哈希树与块

我怎样才能做到这一点:

class MyClass

   tile 'some title'

   collection do
    node1 'node1'
    node2 'node2'

      another_collection do
        node1 'node1'
        node2 'node2' 
      end
   end
   end_node 'some text'

end
Run Code Online (Sandbox Code Playgroud)

并产生以下:

MyClass.build #=>{:title=>'some title',:collection=>{:node1=>'node1',:node2=>'node2',:another_collection=>{:node1=>'node1',:node2=>'node2'}},:end_node=>'some text'}
Run Code Online (Sandbox Code Playgroud)

我正在尝试的是制作简单的DSL并构建哈希树.我确信可以使用method_missing和instance_eval完成,但我现在不知道如何构建该逻辑.

感谢帮助

ruby tree dsl block

1
推荐指数
1
解决办法
828
查看次数

实现在Objective-C中链接消息的机制?

我正在编写一个应用程序,需要在另一个方法完成后运行方法.(常见情况,对吧?)

我正在尝试实现链式方法.我想出的最好的就是打电话performSelector:withObject:afterDelay:.我只是不确定这是否是最好的方法.我已经研究了Cocos2d游戏引擎如何实现它的CCSequence类,但我不确定我是否理解它.

我怀疑块在这里会做得很好,除了我不确定如何使用它们作为回调对象或其他什么.

我将如何一个接一个地实现运​​行方法的机制?(我愿意使用定时器或块,但我不知道在这种情况下我是如何使用块的.)

编辑:

为了澄清,我正在尝试实现一个类似cocos2d CCSequence类的系统,它采用一些方法并按顺序"调度"它们.像动画这样的东西,需要花费不止一个时钟周期才能运行.

我不是要阻止主线程,也不想相互硬编码方法.Cocos2d有一个排序系统,我可以将方法传递给队列并按顺序运行它们.

编辑2:

此外,我希望能够取消我的预定队列,所以我不确定GCD是否适合这一点.可以取消GCD串行队列吗?

iphone block objective-c ios

1
推荐指数
2
解决办法
649
查看次数

我的自定义Magento扩展程序获得了404页面找不到错误

首先让我说我已禁用并清除缓存并注销并重新登录.但是,我仍然收到此错误.

其次,让我解释一下我要做的事情.顺便说一下,这是我的第一个扩展构建:)我只是想构建一个扩展,如果它被启用它将覆盖原始的cart/shipping.phtml文件与我自己的模板文件..

我可以在管理员配置下的左侧边栏中看到我的扩展程序.但是,当我点击我的扩展程序以提取允许您禁用或启用它的常规选项卡时,我找不到可怕的404页面.你能看看我的代码,让我知道我做错了什么吗?感谢所有帮助的人!

这是我的所有文件:)

等/ config.xml中

<?xml version="1.0"?>
<config>    
<modules>
<Beckin_DropDownShipping><version>1.0.0</version></Beckin_DropDownShipping>
    </modules>

<global>
            <blocks>
                 <dropdownshipping>
                      <class>Beckin_DropDownShipping_Block</class>
                 </dropdownshipping>
            </blocks>

    <helpers>
         <dropdownshipping>
          <class>Beckin_DropDownShipping_Helper</class>
         </dropdownshipping>
    </helpers>      
</global>

 <frontend>
    <layout>
        <updates>
            <beckin>
                <file><!-- beckin_dropdownshipping.xml --></file>
            </beckin>
        </updates>
    </layout>
    <routers>
        <dropdownshipping>
            <use>standard</use>
            <args>
                <module>Beckin_DropDownShipping</module>
                <frontName>dropdownshipping</frontName>
            </args>
        </dropdownshipping>
    </routers>  
 </frontend>


 <adminhtml>
    <acl>
        <resources>
            <admin>
                <children>
                    <system>
                        <children>
                            <config>
                                <children>
                                    <dropdownshipping_options>
                                        <title>Beckin Drop Down Shipping Extension</title>
                                    </dropdownshipping_options>
                                </children>
                            </config>
                        </children>
                    </system>
                </children>
            </admin>
        </resources>
    </acl>
</adminhtml>

</config>
Run Code Online (Sandbox Code Playgroud)

等/的system.xml

<?xml version="1.0"?>
<config>
<tabs>
    <beckin translate="label">
        <label>Beckin Extensions</label>
        <sort_order>100</sort_order> …
Run Code Online (Sandbox Code Playgroud)

module block magento http-status-code-404 adminhtml

1
推荐指数
1
解决办法
6413
查看次数

相当新的rails开发人员对content_tag和helper感到困惑

我正在尝试创建一个日历表来显示公司每个员工的每日可用性.我认为我需要的是一个标题,其中包含每月的日期,然后是每个工作人员的一行(具有与天数一样多的单元格).每个单元格的不同背景颜色将代表不同的可用性状态,并且工作人员会更改,因此我希望动态生成所有这些.

经过网上研究并以Ryan Bates的Railscast#213(日历修订版)作为我的向导,我到目前为止设法生成了我的表格的标题,显示了每个单元格中每月的日期.

到目前为止,这是我的代码:

module ReceptionHelper
def reception(date = Date.today, &block)
    Reception.new(self, date, block).table
end

class Reception < Struct.new(:view, :date, :callback)
    delegate :content_tag, to: :view

    def table
        content_tag :table, class: "calendar" do
            daysHeader
        end
    end

    def daysHeader
        last_day = date.end_of_month.strftime("%d").to_i
        (0..last_day).to_a.map { |day| content_tag :th, day }.join.html_safe
    end
end
Run Code Online (Sandbox Code Playgroud)

现在,问题和困惑开始于此:

  • 正如我所发现的那样,删除&block并删除:callback{...}功能.我不能说我理解为什么.谁有一个很好的解释?

  • 为什么以上工作,但我不能使用(..).each docontent_tag下面的块?

    (0..last_day).to_a.each do |day| 
        content_tag :th do
            day
        end
    end
    
    Run Code Online (Sandbox Code Playgroud)
  • 在我努力为每个员工显示行时,我选择了这个:

    def table
        content_tag :table, class: "calendar" do …
    Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails block helper content-tag

1
推荐指数
1
解决办法
1634
查看次数

jQuery:找出元素是块,内联块还是内联显示

有没有办法找出元素的css'display'属性是使用jQuery设置为'block','inline-block'还是'inline'?

css jquery inline block

1
推荐指数
1
解决办法
2109
查看次数

为什么memcmp返回-1虽然相等

我正在使用memcmp()相同结构的两个变量进行比较(结构中有结合).变量在两个数组中,我正在运行一个循环,我在每次迭代中都这样做memcmp(&arr1[i], &arr2[i], sizeof(arrtype)).

调试时我发现memcmp返回-1,但是看两个变量及其值,我看到变量的值相等.这些数组在开始时使用memset归零.

  1. 所以有人知道为什么memcmp返回-1而不是0?
  2. 有没有更好的方法来做我需要的(比较两个内存块)?

码:

typedef struct type1 {
    int version;
    union {
            option1_t opt1;
            option2_t opt2;
    } union_t;
} type1_t;

typedef struct type0 {
    type1_t member1;
    type2_t member2;
    type3_t member3;
    type4_t member4;
    type5_t member;
} type0_t;


type0_t arr1[SIZE];
type0_t arr2[SIZE];

memset(arr1, 0, SIZE * sizeof(type0_t));
memset(arr2, 0, SIZE * sizeof(type0_t));

/* doing irrelevant stuff... */

/* get values into arr1, arr2 ... */


/* comparing both arrays in for loop*/
value …
Run Code Online (Sandbox Code Playgroud)

c arrays struct block memcmp

1
推荐指数
1
解决办法
2136
查看次数

将多个块参数传递给方法

在Apple Docs中,它说:

最佳做法是仅对方法使用一个块参数.

是否可以传递多个块参数; 还是应该避免这种情况?

具体来说,这里有一些我正在使用的选项(我希望使用第一个):

-(void) doSomethingWithSuccessBlock:(void(^)(void))successBlock withFailureBlock:(void (^)(NSError *)) failureBlock
Run Code Online (Sandbox Code Playgroud)

要么

-(BOOL) didDoSomethingWithFailureBlock:(void (^)(NSError *)) failureBlock
Run Code Online (Sandbox Code Playgroud)

要么

-(void) doSomethingWithCallbackBlock:(void (^)(BOOL, NSError *)) callbackBlock
Run Code Online (Sandbox Code Playgroud)

block objective-c ios objective-c-blocks

1
推荐指数
1
解决办法
2928
查看次数

iOS从方法返回块值

如何从方法和输出块中返回变量"myDoub(例如= 65)"?

- (double)executeRequestUrlString:(NSString *)urlString withBlock:(double (^)(double myDoub))block {
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response,
                                               NSData *data,
                                               NSError *error) {
                                   if (!error){
                                      //data = 65; for example
                                       block(data);
                                   }
                               }];

    return block(data);  // ???????? This NOT work
}


- (void)viewDidLoad
{
    [super viewDidLoad];

    //
    .......
    //
    double myNewDouble =  [self executeRequestUrlString:fullUrlImage withBlock:^double(double myDoub) {
        return myDoub;
    }];

    // how i can get here variable "myDoub=65" ????

}
Run Code Online (Sandbox Code Playgroud)

block ios objective-c-blocks

1
推荐指数
1
解决办法
4378
查看次数

数据流图和框图之间的区别

谁能解释数据流图和框图之间的区别?我用谷歌搜索但没有得到任何令人满意的东西,这就是我转向Stack Overflow的原因.

谢谢.

diagram block dataflow-diagram

1
推荐指数
1
解决办法
1万
查看次数

在红宝石中,什么时候是一块不是一块?

抛开笑话,我有一个奇怪的情况,我有一些代码:

def remotes(form,remotes)
  personalised_form = form.dup
  remotes.each do |ident,remote|
    object = yield(ident)
    result = remote.call(object)
    insert_into_(personalised_form,ident,result)
  end
  personalised_form
end
Run Code Online (Sandbox Code Playgroud)

而且我看到它是否如此工作:

pp remotes(forms,remotes) do |ident|
  case(ident)
    when :get_assets
      '@Userobject'
  end
end
Run Code Online (Sandbox Code Playgroud)

问题是,ruby似乎认为我没有将一个块传递给该remotes函数.

为什么红宝石坚持认为我没有通过一个街区?(它no block given (yield) (LocalJumpError)具体给出了).

认为它不相关,遥控器是包含键和Proc的散列,而形式只是一个特定结构的散列,其中使用ident插入proc的结果来定位正确的插入点

ruby block proc

1
推荐指数
1
解决办法
46
查看次数