File: core_ext.rb

package info (click to toggle)
ruby-msgpack 1.8.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 972 kB
  • sloc: ruby: 4,789; ansic: 4,309; java: 1,809; makefile: 4
file content (139 lines) | stat: -rw-r--r-- 2,146 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
module MessagePack
  module CoreExt
    def to_msgpack(packer_or_io = nil)
      if packer_or_io
        if packer_or_io.is_a?(MessagePack::Packer)
          to_msgpack_with_packer packer_or_io
        else
          MessagePack.pack(self, packer_or_io)
        end
      else
        MessagePack.pack(self)
      end
    end
  end
end

class NilClass
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_nil
    packer
  end
end

class TrueClass
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_true
    packer
  end
end

class FalseClass
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_false
    packer
  end
end

class Float
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_float self
    packer
  end
end

class String
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_string self
    packer
  end
end

class Array
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_array self
    packer
  end
end

class Hash
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_hash self
    packer
  end
end

class Symbol
  include MessagePack::CoreExt

  private
  def to_msgpack_with_packer(packer)
    packer.write_symbol self
    packer
  end
end

if 1.class.name == "Integer"
  class Integer
    include MessagePack::CoreExt

    private
    def to_msgpack_with_packer(packer)
      packer.write_int self
      packer
    end
  end
else
  class Fixnum
    include MessagePack::CoreExt

    private
    def to_msgpack_with_packer(packer)
      packer.write_int self
      packer
    end
  end

  class Bignum
    include MessagePack::CoreExt

    private
    def to_msgpack_with_packer(packer)
      packer.write_int self
      packer
    end
  end
end

module MessagePack
  class ExtensionValue
    include CoreExt

    private
    def to_msgpack_with_packer(packer)
      packer.write_extension self
      packer
    end
  end
end