ObjCGenerator 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/ObjCGenerator.rb +1 -0
- data/lib/ObjCGenerator/category_generator.rb +1 -0
- data/lib/ObjCGenerator/class_implementation_generator.rb +8 -4
- data/lib/ObjCGenerator/command.rb +5 -1
- data/lib/ObjCGenerator/file_copier.rb +13 -0
- data/lib/ObjCGenerator/types.rb +3 -3
- data/lib/ObjCGenerator/version.rb +1 -1
- data/templates/NSDate+CustomCode.h +15 -0
- data/templates/NSDate+CustomCode.m +28 -0
- data/templates/method_description.erb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0de33303f0dcc956d5aaad2645e753f41d1e1ebb
|
|
4
|
+
data.tar.gz: 0dbb21818bbabb6308f5fa68576a3e389dc2dd04
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1c6a242af67c90e503d2825a4309921a65fc8af1526f25b97ad0a1693c39d3c537ea53bf1221b55ab4b4a665babc6ca6424a8f48c52b5e859b5d8303d6b89caa
|
|
7
|
+
data.tar.gz: d735658dc682ce63682cc4e4eeb53ee65eb0a174e9d02c52c580800f2930a1241ed557714a3efb32aac3e91ca168e04bbaba212c5861ffc113ed6698a552ee9c
|
data/lib/ObjCGenerator.rb
CHANGED
|
@@ -5,6 +5,7 @@ require "ObjCGenerator/version"
|
|
|
5
5
|
require "ObjCGenerator/class_interface_generator"
|
|
6
6
|
require "ObjCGenerator/class_implementation_generator"
|
|
7
7
|
require "ObjCGenerator/category_generator"
|
|
8
|
+
require "ObjCGenerator/file_copier.rb"
|
|
8
9
|
require "ObjCGenerator/json_parser"
|
|
9
10
|
require "ObjCGenerator/command"
|
|
10
11
|
require "ObjCGenerator/types"
|
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
|
|
2
2
|
module ObjCGenerator
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class ClassImplementationGenerator
|
|
5
|
+
|
|
6
|
+
def template_path filename
|
|
7
|
+
File.join(File.expand_path("../..", File.dirname(__FILE__)), "templates/#{filename}.erb")
|
|
8
|
+
end
|
|
9
|
+
|
|
5
10
|
def generate_incipit()
|
|
6
11
|
author = "Ignazioc"
|
|
7
12
|
|
|
@@ -13,9 +18,9 @@ module ObjCGenerator
|
|
|
13
18
|
|
|
14
19
|
incipit = generate_incipit()
|
|
15
20
|
|
|
16
|
-
@import_other_classes =
|
|
21
|
+
@import_other_classes = generate_import_other_classes(vars)
|
|
17
22
|
@init_method = generate_init_method(vars)
|
|
18
|
-
@init_with_dict_method =
|
|
23
|
+
@init_with_dict_method = generate_init_with_dict_method(vars)
|
|
19
24
|
@class_init_with_dict = generate_class_init_with_dict(class_name)
|
|
20
25
|
@to_dict_method = generate_to_dict_method(vars)
|
|
21
26
|
@is_equals_method = generate_is_equals_method(class_name)
|
|
@@ -122,7 +127,6 @@ module ObjCGenerator
|
|
|
122
127
|
|
|
123
128
|
return ERB.new(template).result(binding)
|
|
124
129
|
end
|
|
125
|
-
|
|
126
130
|
end
|
|
127
131
|
|
|
128
132
|
def self.vertical_align_vars (strings , regexp, index)
|
|
@@ -8,13 +8,17 @@ module ObjCGenerator
|
|
|
8
8
|
result.each do |klass|
|
|
9
9
|
|
|
10
10
|
g = ClassInterfaceGenerator.new()
|
|
11
|
-
gc =
|
|
11
|
+
gc = ClassImplementationGenerator.new()
|
|
12
12
|
|
|
13
13
|
header = g.generate_class_header klass[:name], klass[:var_list]
|
|
14
14
|
File.open( output_dir + "/#{klass[:name]}.h", 'w') { |file| file.write(header) }
|
|
15
15
|
|
|
16
16
|
implementation = gc.class_implementation klass[:name], klass[:var_list]
|
|
17
17
|
File.open( output_dir + "/#{klass[:name]}.m", 'w') { |file| file.write(implementation) }
|
|
18
|
+
|
|
19
|
+
fc = FileCopier.new()
|
|
20
|
+
fc.copy_categories(output_dir)
|
|
21
|
+
|
|
18
22
|
end
|
|
19
23
|
end
|
|
20
24
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
module ObjCGenerator
|
|
2
|
+
class FileCopier
|
|
3
|
+
|
|
4
|
+
def template_path
|
|
5
|
+
File.join(File.expand_path("../..", File.dirname(__FILE__)), "templates")
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def copy_categories(dest)
|
|
10
|
+
FileUtils.cp_r( Dir.glob(template_path + '/**/*.{h,m}'), dest)
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
data/lib/ObjCGenerator/types.rb
CHANGED
|
@@ -152,16 +152,16 @@ class TypeDate < ObjCType
|
|
|
152
152
|
"[NSDate dateWithTimeIntervalSince1970:0.]"
|
|
153
153
|
end
|
|
154
154
|
def conversion_value origin
|
|
155
|
-
"[NSDate
|
|
155
|
+
"[NSDate ic_dateFromIso8601String:#{origin}]"
|
|
156
156
|
end
|
|
157
157
|
def to_dictionary_item
|
|
158
|
-
"@\"#{@varname}\" :
|
|
158
|
+
"@\"#{@varname}\" : [self.#{@varname} ic_iso8601String] ?: @\"\""
|
|
159
159
|
end
|
|
160
160
|
def inEquality_test other
|
|
161
161
|
"![self.#{self.varname} isEqualToDate:#{other}.#{self.varname}]"
|
|
162
162
|
end
|
|
163
163
|
def description_row
|
|
164
|
-
"@\"self.#{self.varname} = %@\" , self.#{self.varname}"
|
|
164
|
+
"@\"self.#{self.varname} = %@\" , [self.#{self.varname} ic_iso8601String]"
|
|
165
165
|
end
|
|
166
166
|
def copyrow newVarName
|
|
167
167
|
"#{newVarName}.#{self.varname} = [self.#{self.varname} copy];"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//
|
|
2
|
+
// This code is autogenerated using ObjCGenerator by IgnazioC
|
|
3
|
+
// https://github.com/ignazioc/ObjCGenerator
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
#import <Foundation/Foundation.h>
|
|
7
|
+
|
|
8
|
+
@interface NSDate (CustomCode)
|
|
9
|
+
|
|
10
|
+
- (NSString *)ic_iso8601String;
|
|
11
|
+
+ (NSDate *)ic_dateFromIso8601String:(NSString *)date;
|
|
12
|
+
|
|
13
|
+
+ (NSDateFormatter *)ic_iso8601DateFormatter;
|
|
14
|
+
|
|
15
|
+
@end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
//
|
|
2
|
+
// This code is autogenerated using ObjCGenerator by IgnazioC
|
|
3
|
+
// https://github.com/ignazioc/ObjCGenerator
|
|
4
|
+
//
|
|
5
|
+
|
|
6
|
+
#import "NSDate+CustomCode.h"
|
|
7
|
+
|
|
8
|
+
@implementation NSDate (CustomCode)
|
|
9
|
+
|
|
10
|
+
+ (NSDateFormatter *)ic_iso8601DateFormatter {
|
|
11
|
+
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
|
12
|
+
NSLocale *enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];
|
|
13
|
+
[dateFormatter setLocale:enUSPOSIXLocale];
|
|
14
|
+
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"];
|
|
15
|
+
return dateFormatter;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
- (NSString *)ic_iso8601String {
|
|
19
|
+
NSString *iso8601String = [[NSDate ic_iso8601DateFormatter] stringFromDate:self];
|
|
20
|
+
return iso8601String;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
+ (NSDate *)ic_dateFromIso8601String:(NSString *)date {
|
|
24
|
+
NSDate *iso8601Date = [[NSDate ic_iso8601DateFormatter] dateFromString:date];
|
|
25
|
+
return iso8601Date;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
@end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
- (NSString *)description {
|
|
2
2
|
NSString *params = [@[<% for item in @description_rows %>
|
|
3
3
|
<%= item %><% end %>
|
|
4
|
-
] componentsJoinedByString:@"
|
|
4
|
+
] componentsJoinedByString:@",\n "
|
|
5
5
|
];
|
|
6
6
|
return [NSString stringWithFormat:@"%@ { %@ }", NSStringFromClass([self class]), params];
|
|
7
7
|
}
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ObjCGenerator
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ignazio Calò
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2015-
|
|
11
|
+
date: 2015-06-04 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -66,9 +66,12 @@ files:
|
|
|
66
66
|
- lib/ObjCGenerator/class_implementation_generator.rb
|
|
67
67
|
- lib/ObjCGenerator/class_interface_generator.rb
|
|
68
68
|
- lib/ObjCGenerator/command.rb
|
|
69
|
+
- lib/ObjCGenerator/file_copier.rb
|
|
69
70
|
- lib/ObjCGenerator/json_parser.rb
|
|
70
71
|
- lib/ObjCGenerator/types.rb
|
|
71
72
|
- lib/ObjCGenerator/version.rb
|
|
73
|
+
- templates/NSDate+CustomCode.h
|
|
74
|
+
- templates/NSDate+CustomCode.m
|
|
72
75
|
- templates/category_header.erb
|
|
73
76
|
- templates/category_implementation.erb
|
|
74
77
|
- templates/class_header.erb
|