transender 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION.yml +1 -1
- data/bin/transender-rename +32 -0
- data/lib/abowl/Transends/program.json +1 -0
- data/lib/abowl/Transends/stage.json +18 -0
- data/lib/abowl/abowl.yml +11 -9
- data/lib/abowl/devlog.markdown +2 -0
- data/lib/transender.rb +120 -35
- data/transender.gemspec +10 -4
- metadata +8 -3
data/VERSION.yml
CHANGED
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.expand_path(File.join(File.dirname(__FILE__), %w[.. lib transender]))
|
4
|
+
|
5
|
+
$:.unshift File.join(File.dirname(__FILE__))
|
6
|
+
|
7
|
+
#arguments
|
8
|
+
transform = ARGV[0]
|
9
|
+
app_title = ARGV[1]
|
10
|
+
out_dir = ARGV[2]
|
11
|
+
|
12
|
+
def usage
|
13
|
+
puts "Transender #{Transender::VERSION} - the iPhoneSDK cloning/renaming gem"
|
14
|
+
puts "Usage:\n"
|
15
|
+
puts "~>transender myBadlyNamedProject/ myCoolProject /myCool/Path/To/Projects/Path/\n"
|
16
|
+
puts "~>transender <transform> <app_title> <out_dir>\n"
|
17
|
+
puts "transform - an XCode project \n"
|
18
|
+
puts "app_title - the renamed projects name\n"
|
19
|
+
puts "out_dir - where to put fresh app's files\n"
|
20
|
+
end
|
21
|
+
|
22
|
+
unless transform&&app_title&&out_dir
|
23
|
+
usage
|
24
|
+
exit
|
25
|
+
end
|
26
|
+
|
27
|
+
require 'benchmark'
|
28
|
+
|
29
|
+
time = Benchmark.realtime {Transender::Ji.xcode_rename({:transform => transform, :app_title => app_title, :ji_path => out_dir})}
|
30
|
+
puts "Realtime used : #{time}sec"
|
31
|
+
|
32
|
+
# EOF
|
@@ -0,0 +1 @@
|
|
1
|
+
[]
|
@@ -0,0 +1,18 @@
|
|
1
|
+
{
|
2
|
+
"2D":"true",
|
3
|
+
"2D_scene":"SplashScene",
|
4
|
+
"wwwapp":"true",
|
5
|
+
"wifiapp":"true",
|
6
|
+
"program":"program",
|
7
|
+
"horizontal":"true",
|
8
|
+
"animated":"true",
|
9
|
+
"vibe":"3.83",
|
10
|
+
"direction_changes":"false",
|
11
|
+
"big_button":"false",
|
12
|
+
"button_on_left":"true",
|
13
|
+
"button_opens_not_controls":"true",
|
14
|
+
"save_current_spot":"false",
|
15
|
+
"save_current_program":"false",
|
16
|
+
"goldcut":-1,
|
17
|
+
"noise_url":"http://91.185.196.3:8020/"
|
18
|
+
}
|
data/lib/abowl/abowl.yml
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# a transender bowl
|
2
2
|
# defines how transender should transform a MakeMoney cloned iPhone/iPod touch app into another
|
3
|
-
|
4
3
|
app:
|
5
4
|
APP_SERVER_URL: http://kitschmaster.com
|
6
|
-
APP_TITLE:
|
5
|
+
APP_TITLE: XappX
|
7
6
|
APP_ID: 16
|
8
7
|
PRICE: 0.99
|
9
8
|
IRS: 0.7
|
@@ -17,14 +16,17 @@ store:
|
|
17
16
|
Can have 700 chars.
|
18
17
|
|
19
18
|
#list the files you want to keep, all else will be deleted
|
20
|
-
#
|
19
|
+
#each entry is a dir under XappX/Classes, except Views
|
20
|
+
#if you do not list any files, all files will be deleted
|
21
21
|
files:
|
22
|
-
|
23
|
-
|
24
|
-
|
22
|
+
2D:
|
23
|
+
#all
|
24
|
+
Views:
|
25
|
+
#- MessageView
|
26
|
+
#- KopterView
|
25
27
|
Filters:
|
26
28
|
#- Filter_twitter
|
27
29
|
#- Filter_koornk
|
28
|
-
|
29
|
-
#-
|
30
|
-
#-
|
30
|
+
Controllers:
|
31
|
+
#- MessageViewController
|
32
|
+
#- KopterViewController
|
data/lib/transender.rb
CHANGED
@@ -102,42 +102,26 @@ module Transender
|
|
102
102
|
def transend
|
103
103
|
if read_abowl
|
104
104
|
|
105
|
-
# handle
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
end
|
122
|
-
|
123
|
-
# handle files
|
124
|
-
['Controllers', 'Filters'].each do |type|
|
125
|
-
filenames = @abowl['files'][type]
|
126
|
-
if filenames&&filenames.size>0
|
127
|
-
Dir["#{app_path}/Classes/#{type}/*.{m,h}"].each do |file|
|
128
|
-
name = Transender.extract_name(file)
|
129
|
-
FileUtils.rm file unless filenames.member? name
|
105
|
+
# handle classes&views files
|
106
|
+
if @abowl['files']
|
107
|
+
dirz = @abowl['files'].keys
|
108
|
+
dirz.each do |type|
|
109
|
+
dir_string = "#{app_path}/Classes/#{type}/*.{m,h}"
|
110
|
+
dir_string = "#{app_path}/Views/*.{xib, nib}" if type == "Views"
|
111
|
+
filenames = @abowl['files'][type]
|
112
|
+
if filenames&&filenames.size>0
|
113
|
+
unless filenames.size == 1 && filenames[0] == "all"
|
114
|
+
Dir[dir_string].each do |file|
|
115
|
+
name = Transender.extract_name(file)
|
116
|
+
FileUtils.rm file unless filenames.member? name
|
117
|
+
end
|
118
|
+
end
|
119
|
+
else
|
120
|
+
FileUtils.rm_rf(Dir.glob(dir_string))
|
130
121
|
end
|
131
122
|
end
|
132
123
|
end
|
133
|
-
|
134
|
-
if filenames&&filenames.size>0
|
135
|
-
Dir["#{app_path}/Views/*.{xib, nib}"].each do |file|
|
136
|
-
name = Transender.extract_name(file)
|
137
|
-
FileUtils.rm file unless filenames.member? name
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
124
|
+
|
141
125
|
#handle app delegate defines
|
142
126
|
defines = @abowl['app']
|
143
127
|
appDelegate = "#{app_path}/Classes/Application/#{app_title}AppDelegate.h"
|
@@ -172,6 +156,92 @@ module Transender
|
|
172
156
|
end
|
173
157
|
end
|
174
158
|
|
159
|
+
#backdrop and dropback are used inconjunction, to form a form of mending the code back into the project, while maintaining transendability with the mothers source
|
160
|
+
#saves Clasess, Artwork, Transends and Views to abowl
|
161
|
+
#this will later be copied back to the project
|
162
|
+
def backdrop
|
163
|
+
#make sure there is abowl
|
164
|
+
make_abowl unless read_abowl
|
165
|
+
|
166
|
+
#if the app is already there
|
167
|
+
if File.exists?(app_path)
|
168
|
+
|
169
|
+
# handle artwork if any
|
170
|
+
files = Dir["#{app_path}/Artwork/*"]
|
171
|
+
if files&&files.size>0
|
172
|
+
#remove original artwork from abowl
|
173
|
+
FileUtils.rm_rf "#{abowl_path}/Artwork"
|
174
|
+
#copy this apps artworks to abowl
|
175
|
+
FileUtils.cp_r "#{app_path}/Artwork", "#{abowl_path}/"
|
176
|
+
end
|
177
|
+
|
178
|
+
# handle transends if any
|
179
|
+
files = Dir["#{app_path}/Transends/*"]
|
180
|
+
if files&&files.size>0
|
181
|
+
#remove original transends from abowl
|
182
|
+
FileUtils.rm_rf "#{abowl_path}/Transends"
|
183
|
+
#copy this bowls transends
|
184
|
+
FileUtils.cp_r "#{app_path}/Transends", "#{abowl_path}/"
|
185
|
+
end
|
186
|
+
|
187
|
+
# handle classes&views file
|
188
|
+
#FileUtils.rm_rf "#{abowl_path}/Classes"
|
189
|
+
#FileUtils.rm_rf "#{abowl_path}/Views"
|
190
|
+
|
191
|
+
if @abowl['files']
|
192
|
+
dirz = @abowl['files'].keys
|
193
|
+
dirz.each do |type|
|
194
|
+
FileUtils.cp_r "#{app_path}/Classes/#{type}", "#{abowl_path}/Classes/" unless type == "Views"
|
195
|
+
end
|
196
|
+
end
|
197
|
+
FileUtils.cp_r "#{app_path}/Views", "#{abowl_path}/"
|
198
|
+
|
199
|
+
end
|
200
|
+
|
201
|
+
#else do nothinf
|
202
|
+
|
203
|
+
end
|
204
|
+
|
205
|
+
#drops the diff between saved abowl files back into the app_path
|
206
|
+
#this way, you can write code without having to worry about .git and stuff
|
207
|
+
#the mother source can be your template
|
208
|
+
#you just write the difference
|
209
|
+
#if you transend with a new release of the mother source, just add existing files in XCode after transending
|
210
|
+
def dropback
|
211
|
+
#the abowl has Classes, and the app has classes
|
212
|
+
#get all abowl classes and copy them over if they do not exist in the app_path
|
213
|
+
#do the same for views...
|
214
|
+
|
215
|
+
# handle artwork if any
|
216
|
+
files = Dir["#{abowl_path}/Artwork/*"]
|
217
|
+
if files&&files.size>0
|
218
|
+
#remove original artwork
|
219
|
+
FileUtils.rm_rf "#{app_path}/Artwork"
|
220
|
+
#copy this bowls artworks
|
221
|
+
FileUtils.cp_r "#{abowl_path}/Artwork", "#{app_path}/"
|
222
|
+
end
|
223
|
+
|
224
|
+
# handle transends if any
|
225
|
+
files = Dir["#{abowl_path}/Transends/*"]
|
226
|
+
if files&&files.size>0
|
227
|
+
#remove original transends
|
228
|
+
FileUtils.rm_rf "#{app_path}/Transends"
|
229
|
+
#copy this bowls transends
|
230
|
+
FileUtils.cp_r "#{abowl_path}/Transends", "#{app_path}/"
|
231
|
+
end
|
232
|
+
|
233
|
+
#copy from abowl.classes to app.classes if abowl.classes.file not in app.classes
|
234
|
+
`cp -rn '#{abowl_path}/Classes' '#{app_path}/';cp -rn '#{abowl_path}/Views' '#{app_path}/'`
|
235
|
+
|
236
|
+
end
|
237
|
+
|
238
|
+
#copies from transform and renames
|
239
|
+
def copy_and_rename
|
240
|
+
#prepare destination without any warning
|
241
|
+
FileUtils.rm_rf @app_path #`rm -rf #{@app_path}`
|
242
|
+
`cp -r #{@transform} #{@app_path}`
|
243
|
+
end
|
244
|
+
|
175
245
|
#clones from transform then removes git
|
176
246
|
def clone_and_remove_git
|
177
247
|
#prepare destination without any warning
|
@@ -189,6 +259,10 @@ module Transender
|
|
189
259
|
FileUtils.rm_rf File.join(@app_path, 'build') #`rm -rf #{File.join(@app_path, 'build')}`
|
190
260
|
FileUtils.rm_rf File.join(@app_path, '.git') #`rm -rf #{File.join(@app_path, '.git')}`
|
191
261
|
|
262
|
+
#cleanup Transends and Artwork, so it is empty
|
263
|
+
FileUtils.rm_rf Dir.glob("#{@app_path}/Artwork/**/*")
|
264
|
+
FileUtils.rm_rf Dir.glob("#{@app_path}/Transends/**/*")
|
265
|
+
|
192
266
|
puts "Cloned from #{@transform} into #{@app_path}."
|
193
267
|
end
|
194
268
|
|
@@ -226,12 +300,19 @@ module Transender
|
|
226
300
|
end
|
227
301
|
|
228
302
|
def transendize
|
303
|
+
backdrop
|
229
304
|
clone_and_remove_git
|
230
305
|
rename
|
231
306
|
transend
|
307
|
+
dropback
|
232
308
|
zip
|
233
309
|
end
|
234
310
|
|
311
|
+
#Use maybe like this: Transender::Ji.xcode_rename(ahash)
|
312
|
+
def self.xcode_rename(t={})
|
313
|
+
Ji.new(t).copy_and_rename
|
314
|
+
end
|
315
|
+
|
235
316
|
#Use maybe like this: Transender::Ji.transform_and_zip(ahash) {|zip| render :text => zip}
|
236
317
|
def self.transform_and_zip(t={}, &block)
|
237
318
|
zip = Ji.new(t).transformize
|
@@ -248,9 +329,11 @@ module Transender
|
|
248
329
|
#if there is abowl, it will be used for transending
|
249
330
|
def self.transend(t={})
|
250
331
|
ji = Ji.new(t)
|
332
|
+
ji.backdrop
|
251
333
|
ji.clone_and_remove_git
|
252
334
|
ji.rename
|
253
335
|
ji.transend
|
336
|
+
ji.dropback
|
254
337
|
end
|
255
338
|
|
256
339
|
private
|
@@ -301,15 +384,17 @@ module Transender
|
|
301
384
|
def make_abowl
|
302
385
|
unless File.exists? @abowl_yml #do not overwrite
|
303
386
|
FileUtils.cp_r File.join(LIBPATH, "abowl"), @ji_path
|
387
|
+
Transender.replace_strings_in_file('XappX', @app_title, @abowl_yml)
|
388
|
+
read_abowl
|
304
389
|
end
|
305
390
|
rescue
|
306
|
-
puts "Could not make abowl."
|
391
|
+
puts "Could not make abowl. #{$!}"
|
307
392
|
end
|
308
393
|
|
309
394
|
def read_abowl
|
310
395
|
@abowl = YAML.load_file @abowl_yml
|
311
396
|
rescue
|
312
|
-
puts "Could not read abowl."
|
397
|
+
puts "Could not read abowl. #{$!}" if File.exists? @app_path
|
313
398
|
nil
|
314
399
|
end
|
315
400
|
|
data/transender.gemspec
CHANGED
@@ -1,15 +1,17 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{transender}
|
5
|
-
s.version = "0.2.
|
8
|
+
s.version = "0.2.8"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
11
|
s.authors = ["Mihael"]
|
9
|
-
s.date = %q{
|
10
|
-
s.default_executable = %q{transender}
|
12
|
+
s.date = %q{2010-01-21}
|
11
13
|
s.email = %q{kitschmaster@gmail.com}
|
12
|
-
s.executables = ["transender"]
|
14
|
+
s.executables = ["transender", "transender-rename"]
|
13
15
|
s.extra_rdoc_files = [
|
14
16
|
"LICENSE",
|
15
17
|
"README.rdoc",
|
@@ -26,7 +28,11 @@ Gem::Specification.new do |s|
|
|
26
28
|
"Rakefile",
|
27
29
|
"VERSION.yml",
|
28
30
|
"bin/transender",
|
31
|
+
"bin/transender-rename",
|
32
|
+
"lib/abowl/Transends/program.json",
|
33
|
+
"lib/abowl/Transends/stage.json",
|
29
34
|
"lib/abowl/abowl.yml",
|
35
|
+
"lib/abowl/devlog.markdown",
|
30
36
|
"lib/tasks/pushup.rake",
|
31
37
|
"lib/transender.rb",
|
32
38
|
"spec/spec_helper.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: transender
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mihael
|
@@ -9,14 +9,15 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
13
|
-
default_executable:
|
12
|
+
date: 2010-01-21 00:00:00 +01:00
|
13
|
+
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
16
|
description:
|
17
17
|
email: kitschmaster@gmail.com
|
18
18
|
executables:
|
19
19
|
- transender
|
20
|
+
- transender-rename
|
20
21
|
extensions: []
|
21
22
|
|
22
23
|
extra_rdoc_files:
|
@@ -34,7 +35,11 @@ files:
|
|
34
35
|
- Rakefile
|
35
36
|
- VERSION.yml
|
36
37
|
- bin/transender
|
38
|
+
- bin/transender-rename
|
39
|
+
- lib/abowl/Transends/program.json
|
40
|
+
- lib/abowl/Transends/stage.json
|
37
41
|
- lib/abowl/abowl.yml
|
42
|
+
- lib/abowl/devlog.markdown
|
38
43
|
- lib/tasks/pushup.rake
|
39
44
|
- lib/transender.rb
|
40
45
|
- spec/spec_helper.rb
|