ObjCGenerator 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99a5a896777c606d06a79dfaaed6c290d62b4cf8
4
- data.tar.gz: 2c4dbfacda9f5e823bebaadd0b8ba4864e7cf450
3
+ metadata.gz: 0de33303f0dcc956d5aaad2645e753f41d1e1ebb
4
+ data.tar.gz: 0dbb21818bbabb6308f5fa68576a3e389dc2dd04
5
5
  SHA512:
6
- metadata.gz: 2aebc58d88362c096cd5a70f8ed0e82fe4444d019557a80fcadf00bd43e3e9fe5658ccb89fbae7fbaf7130b1c1d3a99a2267d4d9bac6184b6c144b9dfe210a5b
7
- data.tar.gz: 9278bae480f767287746a6b79b8700b97029fdc434a450c377dbd592eab5ea2fd7559a1cc3a520a8b99772afb142b92b58f0490ab7a747744e63db744c79614c
6
+ metadata.gz: 1c6a242af67c90e503d2825a4309921a65fc8af1526f25b97ad0a1693c39d3c537ea53bf1221b55ab4b4a665babc6ca6424a8f48c52b5e859b5d8303d6b89caa
7
+ data.tar.gz: d735658dc682ce63682cc4e4eeb53ee65eb0a174e9d02c52c580800f2930a1241ed557714a3efb32aac3e91ca168e04bbaba212c5861ffc113ed6698a552ee9c
@@ -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,5 +1,6 @@
1
1
  module ObjCGenerator
2
2
  class CategoryGenerator
3
+
3
4
  def template_path filename
4
5
  File.join(File.expand_path("../..", File.dirname(__FILE__)), "templates/#{filename}.erb")
5
6
  end
@@ -1,7 +1,12 @@
1
1
 
2
2
  module ObjCGenerator
3
3
 
4
- class ClassInterfaceGenerator
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 = generate_import_other_classes(vars)
21
+ @import_other_classes = generate_import_other_classes(vars)
17
22
  @init_method = generate_init_method(vars)
18
- @init_with_dict_method = generate_init_with_dict_method(vars)
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 = ClassInterfaceGenerator.new()
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
@@ -152,16 +152,16 @@ class TypeDate < ObjCType
152
152
  "[NSDate dateWithTimeIntervalSince1970:0.]"
153
153
  end
154
154
  def conversion_value origin
155
- "[NSDate dateWithTimeIntervalSince1970:[#{origin} doubleValue]]"
155
+ "[NSDate ic_dateFromIso8601String:#{origin}]"
156
156
  end
157
157
  def to_dictionary_item
158
- "@\"#{@varname}\" : @(self.#{@varname}.timeIntervalSince1970) ?: @(0.)"
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];"
@@ -1,3 +1,3 @@
1
1
  module ObjCGenerator
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -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.6
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-05-28 00:00:00.000000000 Z
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