0

私は次の方法を持っています:

limit 属性を無視したい場合がある

したがって、.take メソッドは無視されます。現時点では、これを適切に行う方法がわかりません。nil に設定すると、コードでエラーが発生します。

助けていただければ幸いです - ruby​​ は初めてです。

def articlesByCategory( category, extensions = [ "md" ], limit = 3 )

    # Check category is an array
    if !category.kind_of?(Array)
        category = [ category ]
    end

    # Create Return Array
    ret = []

    # Get the resources that are
    sitemap.resources.select { |r| ( category & Array( r.data.category ) ).present? }.take( limit ).each do |a|

        ret << a

    end

    # Return
    ret

end
4

3 に答える 3

0

結局こうなったのか

def articlesByCategory( category, extensions = [ "md" ], limit = 3 )

    # Check category is an array
    if !category.kind_of?(Array)
        category = [ category ]
    end

    # Create Return Array
    ret = []

    # Get Resources
    resources = sitemap.resources.select { |r| ( category & Array( r.data.category ) ).present? }

    # Check limit is set
    if !limit.nil?
        resources = resources.take( limit )
    end

    # Get the resources that are
    resources.each do |a|

        ret << a

    end

    # Return
    ret

end
于 2013-08-18T18:34:40.627 に答える