Class: JAXB2Ruby::RubyClass

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/jaxb2ruby/classes.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, element, dependencies = nil, superclass = nil) ⇒ RubyClass

Returns a new instance of RubyClass.



134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# File 'lib/jaxb2ruby/classes.rb', line 134

def initialize(type, element, dependencies = nil, superclass = nil)
  @type = type
  @element = element
  @dependencies = dependencies || []
  @superclass = superclass

  @module = @type.module.dup unless @type.module.empty?
  @outter_class = @type.outter_class.dup unless @type.outter_class.empty?

  [@module, @outter_class].each do |v|
    v.extend Enumerable

    # v may be NilClass
    def v.each(&block)
      ( nil? ? [] : split(RUBY_PKG_SEP) ).each(&block)
    end
  end
end

Instance Attribute Details

#elementObject (readonly)

Returns the value of attribute element.



130
131
132
# File 'lib/jaxb2ruby/classes.rb', line 130

def element
  @element
end

#moduleObject (readonly)

Returns the value of attribute module.



127
128
129
# File 'lib/jaxb2ruby/classes.rb', line 127

def module
  @module
end

#outter_classObject (readonly)

Returns the value of attribute outter_class.



128
129
130
# File 'lib/jaxb2ruby/classes.rb', line 128

def outter_class
  @outter_class
end

#superclassObject (readonly)

Returns the value of attribute superclass.



129
130
131
# File 'lib/jaxb2ruby/classes.rb', line 129

def superclass
  @superclass
end

Instance Method Details

#directoryObject



157
158
159
# File 'lib/jaxb2ruby/classes.rb', line 157

def directory
  File.dirname(path)
end

#filenameObject



153
154
155
# File 'lib/jaxb2ruby/classes.rb', line 153

def filename
  "#{basename.underscore}.rb"
end

#pathObject

This class’s path, for passing to require. Foo::Bar::OneTwo will be turned into foo/bar/one_two.



164
165
166
# File 'lib/jaxb2ruby/classes.rb', line 164

def path
  @path ||= make_path(@module.to_a.concat(outter_class.to_a).push(filename))
end

#requiresObject

Paths for all of this class’s dependencies, for passing to require.



170
171
172
# File 'lib/jaxb2ruby/classes.rb', line 170

def requires
  @requires ||= @dependencies.map { |e| make_path(e.split(RUBY_PKG_SEP)) }.sort.uniq
end