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
Constant Summary collapse
- VERSION =
"0.3.2"- @@objc_types =
{ "array" => "NSArray *" }
Class Method Summary collapse
-
.derive_app_name(app_path) ⇒ Object
Returns an app name from a folder path.
-
.derive_class_name(name) ⇒ Object
Objective-C class names are capitalized “car” => “Car”, “bigbird” => “Bigbird”.
-
.derive_file_name(name) ⇒ Object
File names are the same as class names.
-
.derive_model_name(name) ⇒ Object
Model names are lower case “Car” => “car”, “Bigbird” => “bigbird”.
- .gem_available?(gemname) ⇒ Boolean
- .objective_c_type(type_name) ⇒ Object
- .objective_c_type_fixture_json(type_name) ⇒ Object
- .objective_c_type_fixture_value(type_name) ⇒ Object
- .objective_c_type_unit_test_assert(model_name, name, type_name) ⇒ Object
- .template_folders ⇒ Object
- .validate_app_name(app_name) ⇒ Object
- .validate_bundle_id(bundle_id) ⇒ Object
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
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_folders ⇒ Object
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 |