Sha256: 495f8efbe80694ec03937d2e3de0b25b47f10268e52aff2bfaf054f4c01b4d45

Contents?: true

Size: 909 Bytes

Versions: 38

Compression:

Stored size: 909 Bytes

Contents

#include "rice/Enum.hpp"
#include "rice/ruby_try_catch.hpp"

using namespace Rice;

namespace
{

enum Sample_Enum
{
  SE_FOO = 1,
  SE_BAR = 42,
  SE_BAZ = 100,
};

Rice::Enum<Sample_Enum> sample_enum_type;

char const * description(Sample_Enum e)
{
  switch(e)
  {
    case SE_FOO: return "Fairly Ordinary Object";
    case SE_BAR: return "Beginner's All-purpose Ratchet";
    case SE_BAZ: return "Better than A Zebra";
  }
  return "???";
}

} // namespace

template<>
Sample_Enum from_ruby<Sample_Enum>(Object x)
{
  Data_Object<Sample_Enum> d(x, sample_enum_type);
  return *d;
}

extern "C"
void Init_sample_enum()
{
  RUBY_TRY
  {
    sample_enum_type =
      define_enum<Sample_Enum>("Sample_Enum")
      .define_value("FOO", SE_FOO)
      .define_value("BAR", SE_BAR)
      .define_value("BAZ", SE_BAZ);
     
    sample_enum_type
      .define_method("description", description);
  }
  RUBY_CATCH
}

Version data entries

38 entries across 38 versions & 6 rubygems

Version Path
rice-3.0.0 sample/enum/sample_enum.cpp
rice2-2.2.1 sample/enum/sample_enum.cpp
rice2-2.2.0 sample/enum/sample_enum.cpp
rice-2.2.0 sample/enum/sample_enum.cpp
rice-2.1.3 sample/enum/sample_enum.cpp
rice-2.1.2 sample/enum/sample_enum.cpp
rice-2.1.1 sample/enum/sample_enum.cpp
rice-2.1.0 sample/enum/sample_enum.cpp
rice-2.0.0 sample/enum/sample_enum.cpp
rice-1.7.0 sample/enum/sample_enum.cpp
rice-1.6.3 sample/enum/sample_enum.cpp
jameskilton-rice-1.2.0 sample/enum/sample_enum.cpp
rice-1.6.2 sample/enum/sample_enum.cpp
rice-1.6.1 sample/enum/sample_enum.cpp
rice-1.6.0 sample/enum/sample_enum.cpp
rice-1.6.0.pre sample/enum/sample_enum.cpp
rice-1.5.3 sample/enum/sample_enum.cpp
rice-1.5.2 sample/enum/sample_enum.cpp
keyme-rice-1.5.1.keyme1 sample/enum/sample_enum.cpp
keyme-rice-1.5.1.keyme sample/enum/sample_enum.cpp