Class: Ree::ImportDsl::ConstantContext

Inherits:
Object
  • Object
show all
Defined in:
lib/ree/dsl/import_dsl.rb

Class Method Summary collapse

Class Method Details

.&(obj) ⇒ Object



124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# File 'lib/ree/dsl/import_dsl.rb', line 124

def &(obj)
  if !obj.is_a?(Class)
    raise Ree::ImportDsl::UnlinkConstError.new(obj)
  end

  new_obj = if has_context_ancestor?(obj)
    obj
  else
    ConstantContextBuilder.get_context(obj.to_s.split("::").last)
  end

  return self if @constants.detect { |_| _.name == new_obj.name }
  @constants.push(new_obj)

  self
end

.as(obj) ⇒ Object



110
111
112
113
114
115
116
117
118
119
120
121
122
# File 'lib/ree/dsl/import_dsl.rb', line 110

def as(obj)
  if !obj.is_a?(Class)
    raise Ree::ImportDsl::UnlinkConstError.new(obj)
  end

  @as = if has_context_ancestor?(obj)
    obj
  else
    ConstantContextBuilder.get_context(obj.to_s.split("::").last)
  end

  self
end

.const_missing(const_name) ⇒ Object



90
91
92
# File 'lib/ree/dsl/import_dsl.rb', line 90

def const_missing(const_name)
  ConstantContextBuilder.get_context(const_name, name)
end

.constantsObject



106
107
108
# File 'lib/ree/dsl/import_dsl.rb', line 106

def constants
  @constants
end

.get_asObject



102
103
104
# File 'lib/ree/dsl/import_dsl.rb', line 102

def get_as
  @as
end

.has_context_ancestor?(obj) ⇒ Boolean

Returns:

  • (Boolean)


141
142
143
144
# File 'lib/ree/dsl/import_dsl.rb', line 141

def has_context_ancestor?(obj)
  return false unless obj.is_a?(Class)
  obj.ancestors.include?(ConstantContext)
end

.module_nameObject



98
99
100
# File 'lib/ree/dsl/import_dsl.rb', line 98

def module_name
  @module_name
end

.nameObject



94
95
96
# File 'lib/ree/dsl/import_dsl.rb', line 94

def name
  @name
end