19634

[code]

    class Object
      def with_bracket
        [self] unless self.is_a?(Array)
      end
    end
    
[/code]

みたいなメソッドです。

[code]

    [1,2].with_bracket.each do |i|
    end
    1.with_bracket.each do |i|
    end
    
[/code]

みたいに使いたいです。  
(Objectクラスに書くか迷っていますが、with_bracketの命名も募集していますｗ)


CC BY-SA 3.0
2015-12-04T13:03:04.773
19632
2015-12-05T03:18:25.243
12758
question
ruby
Fixnum / String等を arrayに包んで返すメソッドってありますか？？


`Array()` というメソッドがあります。

[code]

    Array(1)      #=> [1]
    Array("abc")  #=> ["abc"]
    Array([1, 2]) #=> [1, 2]
    
[/code]


CC BY-SA 3.0
2015-12-04T13:19:24.010
19634
2015-12-04T13:19:24.010
3249
19632
answer


`Fixnum / String` と想定されているので、問題ないかもしれませんが、Hash などでは想定外になるかもしれないので、少しだけフォローを

[code]

    [5] pry(main)> Array({a: 1, b: 2})
    => [[:a, 1], [:b, 2]]
    
[/code]

`[{a: 1, b: 2}]` にはならないので、知っておかれると宜しいかと思います。

> arg に to_ary, to_a のいずれのメソッドも定義されていない場合は 一要素の配列 [arg] を返します。  
>  [module function Kernel.#Array (Ruby 2.2.0)](http://docs.ruby-
> lang.org/ja/2.2.0/method/Kernel/m/Array.html)

activesupport が使えるなら、wrap をお勧めします。

[code]

    Array(foo: :bar)      # => [[:foo, :bar]]
    Array.wrap(foo: :bar) # => [{:foo=>:bar}]
    
[/code]

[wrap (Array) - APIdock](http://apidock.com/rails/Array/wrap/class)


CC BY-SA 3.0
2015-12-05T03:18:25.243
19646
2015-12-05T03:18:25.243
7471
19632
answer