Module: Transform

Extended by:
Transform
Included in:
Transform, Read, Write
Defined in:
lib/transform/log.rb,
lib/transform/copy.rb,
lib/transform/read.rb,
lib/transform/write.rb,
lib/transform/transform.rb,
lib/transform/controls/text.rb,
lib/transform/controls/subject.rb,
lib/transform/controls/raw_data.rb,
lib/transform/controls/no_transformer.rb,
lib/transform/controls/subject/transform.rb,
lib/transform/controls/subject/transformer.rb,
lib/transform/controls/no_transform_methods.rb,
lib/transform/controls/subject/object_formatter.rb,
lib/transform/controls/subject/instance_receives_class.rb

Defined Under Namespace

Modules: Controls, Copy, Read, Write Classes: Log

Constant Summary collapse

Error =
Class.new(RuntimeError)

Instance Method Summary collapse

Instance Method Details

#transform_const?(subject_constant) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/transform/transform.rb', line 28

def transform_const?(subject_constant)
  Reflect.constant?(subject_constant, :Transform)
end

#transformer?(subject) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
39
# File 'lib/transform/transform.rb', line 36

def transformer?(subject)
  subject_constant = Reflect.constant(subject)
  transform_const?(subject_constant) || transformer_const?(subject_constant)
end

#transformer_const?(subject_constant) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/transform/transform.rb', line 32

def transformer_const?(subject_constant)
  Reflect.constant?(subject_constant, :Transformer)
end

#transformer_name(subject_constant) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/transform/transform.rb', line 18

def transformer_name(subject_constant)
  if transform_const?(subject_constant)
    return :Transform
  elsif transformer_const?(subject_constant)
    return :Transformer
  else
    return nil
  end
end

#transformer_reflection(subject) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/transform/transform.rb', line 6

def transformer_reflection(subject)
  subject_constant = Reflect.constant(subject)

  transformer_name = transformer_name(subject_constant)

  if transformer_name.nil?
    raise Error, "#{subject_constant.name} doesn't have a Transformer or Transform namespace"
  end

  Reflect.(subject, transformer_name, strict: true)
end