Module: LaneKit

Defined in:
lib/lanekit.rb,
lib/lanekit.rb,
lib/lanekit/new.rb,
lib/lanekit/version.rb,
lib/lanekit/generate/model.rb,
lib/lanekit/generate/provider.rb

Defined Under Namespace

Classes: CLI, Generate

Constant Summary collapse

VERSION =
"0.3.2"
@@objc_types =
{
  "array" => "NSArray *"
}

Class Method Summary collapse

Class Method Details

.derive_app_name(app_path) ⇒ Object

Returns an app name from a folder path. App names are lower case “Tracker” => “tracker”, “~/Projects/Runner” => “runner”



20
21
22
# File 'lib/lanekit.rb', line 20

def self.derive_app_name(app_path)
  app_name = File.basename(app_path).to_s.downcase
end

.derive_class_name(name) ⇒ Object

Objective-C class names are capitalized “car” => “Car”, “bigbird” => “Bigbird”



33
34
35
36
# File 'lib/lanekit.rb', line 33

def self.derive_class_name(name)
  class_name = name.to_s.capitalize
  class_name
end

.derive_file_name(name) ⇒ Object

File names are the same as class names



39
40
41
42
# File 'lib/lanekit.rb', line 39

def self.derive_file_name(name)
  file_name = name.to_s.capitalize
  file_name
end

.derive_model_name(name) ⇒ Object

Model names are lower case “Car” => “car”, “Bigbird” => “bigbird”



26
27
28
29
# File 'lib/lanekit.rb', line 26

def self.derive_model_name(name)
  model_name = name.to_s.downcase
  model_name
end

.gem_available?(gemname) ⇒ Boolean

Returns:

  • (Boolean)


133
134
135
136
137
138
139
# File 'lib/lanekit.rb', line 133

def self.gem_available?(gemname)
 if Gem::Specification.methods.include?(:find_all_by_name) 
   not Gem::Specification.find_all_by_name(gemname).empty?
  else
    Gem.available?(gemname)
  end
end

.objective_c_type(type_name) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/lanekit.rb', line 44

def self.objective_c_type(type_name)
  type = @@objc_types[type_name]
  return type if type
  
  if type_name == "array"
    type = "NSArray *"
  elsif type_name == "date"
    type = "NSDate *"
  elsif type_name == "integer"
    type = "NSNumber *"
  elsif type_name == "string"
    type = "NSString *"
  elsif type_name
    type = type_name + " *"
  else
    type = "id "
  end
  type
end

.objective_c_type_fixture_json(type_name) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/lanekit.rb', line 64

def self.objective_c_type_fixture_json(type_name)
  if type_name == "array"
    value = "[]"
  elsif type_name == "date"
    value = "03/01/2012"
  elsif type_name == "integer"
    value = "1"
  elsif type_name == "string"
    value = "MyString"
  elsif type_name
    value = ""
  else
    value = ""
  end
  value
end

.objective_c_type_fixture_value(type_name) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/lanekit.rb', line 81

def self.objective_c_type_fixture_value(type_name)
  if type_name == "array"
    value = "@[]"
  elsif type_name == "date"
    value = "NSDate.new"
  elsif type_name == "integer"
    value = "[NSNumber numberWithInteger:1]"
  elsif type_name == "string"
    value = "@\"MyString\""
  elsif type_name
    value = "nil"
  else
    value = "nil"
  end
  value
end

.objective_c_type_unit_test_assert(model_name, name, type_name) ⇒ Object



98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/lanekit.rb', line 98

def self.objective_c_type_unit_test_assert(model_name, name, type_name)
  if type_name == "array"
    assert = "STAssertNotNil(#{model_name}.#{name}, @\"#{name} is nil\")"
  elsif type_name == "date"
    assert = "STAssertNotNil(#{model_name}.#{name}, @\"#{name} is nil\")"
  elsif type_name == "integer"
    assert = "STAssertTrue(#{model_name}.#{name}.integerValue == #{self.objective_c_type_fixture_value(type_name)}.integerValue, @\"#{name} not #{self.objective_c_type_fixture_value(type_name)}\")"
  elsif type_name == "string"
    assert = "STAssertTrue([#{model_name}.#{name} isEqualToString:#{self.objective_c_type_fixture_value(type_name)}], @\"#{name} not correct value\")"
  elsif type_name
    assert = "STAssertNotNil(#{model_name}.#{name}, @\"#{name} is nil\")"
  else
    assert = "STAssertNotNil(#{model_name}.#{name}, @\"#{name} is nil\")"
  end
  assert
end

.template_foldersObject



14
15
16
# File 'lib/lanekit.rb', line 14

def self.template_folders
  [@template_folder]
end

.validate_app_name(app_name) ⇒ Object



115
116
117
118
119
120
121
122
# File 'lib/lanekit.rb', line 115

def self.validate_app_name(app_name)
  if app_name.length < 2
    return "app name must be at least two characters long"
  elsif app_name.include? " "
    return "app name cannot include spaces"
  end
  return nil
end

.validate_bundle_id(bundle_id) ⇒ Object



124
125
126
127
128
129
130
131
# File 'lib/lanekit.rb', line 124

def self.validate_bundle_id(bundle_id)
  if bundle_id.length < 2
    return "bundle id must be at least two characters long"
  elsif bundle_id.include? " "
    return "bundle id cannot include spaces"
  end
  return nil
end