Class: GeneratorQtBase

Inherits:
GeneratorBase show all
Defined in:
lib/metarecord/generators/qt/base.rb

Direct Known Subclasses

QtHeaderGenerator, QtSourceGenerator

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from GeneratorBase

#_append, _use_by_files, _use_by_models, #get_classname, #get_pluralized_name, #get_singular_name, #get_value, #has_many, #has_one, #indent, is_file_based?, #make_block, #order_by, prepare, #property, #ptr_type, #reset, #resource_name, #should_generate_for, #should_generate_from_manifest, #should_skip_on_client?, sourcefile_to_destfile, #unindent, use, #visibility

Class Method Details

.super_classObject



6
7
8
9
10
11
12
# File 'lib/metarecord/generators/qt/base.rb', line 6

def super_class
  if defined? METARECORD_MODEL_SUPER_CLASS
    METARECORD_MODEL_SUPER_CLASS
  else
    "MetaRecordNotifiable"
  end
end

.super_class_includeObject



14
15
16
17
18
19
20
# File 'lib/metarecord/generators/qt/base.rb', line 14

def super_class_include
  if defined? METARECORD_MODEL_SUPER_CLASS_PATH
    METARECORD_MODEL_SUPER_CLASS_PATH
  else
    "metarecord-qt/metarecordnotifiable.h"
  end
end

Instance Method Details

#get_type(type) ⇒ Object



34
35
36
37
38
39
# File 'lib/metarecord/generators/qt/base.rb', line 34

def get_type type
  if type.kind_of? Class
    return type.new self if type <= PropertyType
  end
  PropertyType.new(nativeTypeNameFor type)
end

#id_typeObject



23
24
25
# File 'lib/metarecord/generators/qt/base.rb', line 23

def id_type
  "QByteArray"
end

#nativeTypeNameFor(type) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/metarecord/generators/qt/base.rb', line 41

def nativeTypeNameFor type
  if type.class == Class
    case type.name
    when 'String'    then 'QString'
    when 'ByteArray' then 'QByteArray'
    when 'Hash'      then 'QVariantMap'
    when 'DateTime'  then 'QDateTime'
    when 'Integer'   then 'qint64'
    when 'Float'     then 'qfloat16'
    when 'Boolean'   then 'bool'
    else type
    end
  else
    case type
    when 'std::string'          then 'QString'
    when 'std::time_t'          then 'QDateTime'
    when 'DataTree'             then 'QJsonObject'
    when 'Crails::Odb::id_type' then id_type
    else type
    end
  end
end

#null_idObject



27
28
29
30
31
32
# File 'lib/metarecord/generators/qt/base.rb', line 27

def null_id
  case id_type
  when 'QByteArray' then 'QByteArray()'
  else 0
  end
end