Top Level Namespace

Defined Under Namespace

Modules: CommandInitializationMethods, Enumerable, EventConstants, EventInitializationMethods, Inform, Java, Kernel, LoggerHelpers, Logging, ObjectSpace, PrivateCommandMethods, PrivateEventMethods, PublicCommandMethods, PublicEventMethods, ReverseEngineerClass, SessionManagementMethods, SessionStateManagementMethods, StoryTeller Classes: Array, EmptyImmutableEnumerable, ExtendedProperties, FalseClass, Hash, Integer, Logger, MethodAlreadyDefined, NilClass, Numeric, Object, Proc, Set, String, Symbol, Time, TrueClass

Constant Summary collapse

WORDSIZE =

Simulate compiling with Z-code only compiler

(2**((0.size * 8) - 2) - 1)
JavaStackTracePattern =
%r{(org[/.]+(java|jruby)|method_missing)}.freeze
JoinedTemplate =
'%<str>s%<other>s'.freeze
ObjectIdentityTemplate =
'#<%<klass>s:%<name>s:0x%<hex>x:%<id>d>'.freeze
ObjectIdentityAttributes =
%i[name].freeze
AttributeTemplate =
'@%<key>s=%<value>s'.freeze
CommaSpaceString =
', '.freeze
ListCommaTemplate =
'%<str>s, %<other>s %<last>s'.freeze
ListSansCommaTemplate =
'%<str>s, %<other>s %<last>s'.freeze
SentenceTemplate =
'%<str>s %<other>s %<last>s'.freeze

Instance Method Summary collapse

Instance Method Details

#Object(name, klass = Inform::Object, &block) ⇒ Object

def Object(name, klass = Inform::Object, &block)

obj = klass == Inform::Object ? Inform::Object.build(name) : klass.new(name)
obj.with(&block) if block_given?
obj.save_changes if obj.respond_to?(:save_changes)
obj

end



31
32
33
34
35
36
37
38
39
40
# File 'lib/story_teller/inform/ephemeral/object.rb', line 31

def Object(name, klass = Inform::Object, &block)
  obj = if klass.respond_to?(:fetch_or_create_by_name)
    klass.fetch_or_create_by_name(name)
  else
    klass.new(name)
  end
  obj.with(&block) if block_given?
  obj.save_changes if obj.respond_to?(:save_changes)
  obj
end