andparcel 0.2.1 → 0.3.0

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.
data/TODO CHANGED
@@ -1,46 +1,5 @@
1
- Wednesday
2
- ---------
3
- developer guide (appendix of AdvAndroid)
4
- ABJ work
5
-
6
- Thursday
7
- --------
8
- wrap developer guide
9
- deploy
10
- point cwac-colormixer README to this
11
- ABJ work
12
-
13
- Friday
14
- ------
15
- standards: parcel.json / catalog.json
16
- ABJ work
17
-
18
- Over Next Few Weeks
19
- -------------------
20
- get other key cwac- components parcel'd up
21
- task
22
- sample code into separate project
23
- Ant builds
24
- main
25
- sample -- do replace
26
- parcel.json
27
- parcel & add to catalog
28
- put CW logo/links on CWAC README's, add links to CWAC blog posts, other updates
29
- wakefulintentservice
30
- sample code into separate project
31
- Ant builds
32
- main
33
- sample -- do replace
34
- parcel.json
35
- parcel & add to catalog
36
- put CW logo/links on CWAC README's, add links to CWAC blog posts, other updates
37
- endlessadapter
38
- Ant builds
39
- parcel.json
40
- parcel & add to catalog
41
- put CW logo/links on CWAC README's, add links to CWAC blog posts, other updates
42
- mergeadapter
43
- Ant builds
44
- parcel.json
45
- parcel & add to catalog
46
- put CW logo/links on CWAC README's, add links to CWAC blog posts, other updates
1
+ generate gem, confirm gem works in a VBox image
2
+ push gem; commit, tag as v0.3.0
3
+ update docs & republish
4
+ blog; comment/close issues
5
+ add issue: integrate -v/--version with git tags
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.1
1
+ 0.3.0
data/andparcel.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{andparcel}
8
- s.version = "0.2.1"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mark Murphy"]
12
- s.date = %q{2010-05-25}
12
+ s.date = %q{2010-05-31}
13
13
  s.default_executable = %q{parcel}
14
14
  s.description = %q{Supplies the parcel command for packaging, installing, and removing parcels from an Android project}
15
15
  s.email = %q{mmurphy@commonsware.com}
@@ -42,6 +42,8 @@ Gem::Specification.new do |s|
42
42
  "test/ParcelReceiver/res/values/strings.xml",
43
43
  "test/ParcelReceiver/src/com/commonsware/android/pr/ParcelReceiver.java",
44
44
  "test/ParcelToPackage/AndroidManifest.xml",
45
+ "test/ParcelToPackage/assets/andParcel_test_foo.txt",
46
+ "test/ParcelToPackage/assets/bar/andParcel_test_goo.txt",
45
47
  "test/ParcelToPackage/build.properties",
46
48
  "test/ParcelToPackage/build.xml",
47
49
  "test/ParcelToPackage/default.properties",
@@ -52,7 +54,7 @@ Gem::Specification.new do |s|
52
54
  "test/ParcelToPackage/local.properties",
53
55
  "test/ParcelToPackage/parcel.json",
54
56
  "test/ParcelToPackage/res/layout/andParcel_test_row.xml",
55
- "test/ParcelToPackage/res/values/strings.xml",
57
+ "test/ParcelToPackage/res/values/andParcel_test_strings.xml",
56
58
  "test/ParcelToPackage/src/com/commonsware/android/p2pkg/ParcelToPackage.java",
57
59
  "test/ParcelToPackage/tmp/andParcel-test_0.1.0.zip",
58
60
  "test/test_init.rb",
data/bin/parcel CHANGED
@@ -14,7 +14,13 @@ require 'rubygems'
14
14
  require 'trollop'
15
15
  require 'andparcel'
16
16
 
17
+
18
+
17
19
  module AndParcel
20
+ def self.version
21
+ "0.3.0"
22
+ end
23
+
18
24
  def self.commands
19
25
  @commands||={}
20
26
  end
@@ -45,6 +51,7 @@ module AndParcel
45
51
  opt :manifest, "manifest containing components to package (defaults to AndroidManifest.xml in project)", :type=>:string, :short=>'m'
46
52
  # opt :dependencies, "names of parcels this parcel depends on", :type=>:strings
47
53
  opt :res, "files/directories of resources to package (defaults to res/ in project)", :type=>:strings, :short=>'r'
54
+ opt :assets, "files/directories of assets to package (defaults to assets/ in project)", :type=>:strings, :short=>'a'
48
55
  end
49
56
 
50
57
  pkg_info=ARGV.shift || "package.json"
@@ -60,6 +67,10 @@ module AndParcel
60
67
  opts[:res]=['res']
61
68
  end
62
69
 
70
+ if !opts[:assets]
71
+ opts[:assets]=['assets']
72
+ end
73
+
63
74
  if !opts[:manifest]
64
75
  opts[:manifest]='AndroidManifest.xml'
65
76
  end
@@ -127,6 +138,8 @@ module AndParcel
127
138
  opt :project, "path to Android project (defaults to parcel.json directory)", :short=>'p'
128
139
  opt :repair, "tells parcel to repair problems", :short=>'r', :default=>false
129
140
  opt :quiet, "whether it should print output on success", :short=>'q', :default=>false
141
+ opt :res, "files/directories of resources to package (defaults to res/ in project)", :type=>:strings, :short=>'r'
142
+ opt :assets, "files/directories of assets to package (defaults to assets/ in project)", :type=>:strings, :short=>'a'
130
143
  end
131
144
 
132
145
  Trollop::die "parcel not provided" if ARGV.size==0
@@ -140,12 +153,25 @@ module AndParcel
140
153
  pkg_info=File.basename(pkg_info)
141
154
  end
142
155
 
156
+ if !opts[:res]
157
+ opts[:res]=['res']
158
+ end
159
+
160
+ if !opts[:assets]
161
+ opts[:assets]=['assets']
162
+ end
163
+
143
164
  AndParcel::Parcel.lint(pkg_info, opts)
144
165
  end
145
166
  end
146
167
  end
147
168
 
148
169
  if ARGV.size>0
170
+ if ARGV.include?('--version') || ARGV.include?('-v')
171
+ $stderr.puts "parcel: an Android Parcel Project client\nVersion #{AndParcel.version}"
172
+ exit(0)
173
+ end
174
+
149
175
  name=ARGV.shift
150
176
  cls=AndParcel.commands[name]
151
177
 
@@ -110,9 +110,10 @@ module AndParcel
110
110
  Zip::ZipFile.open(target, Zip::ZipFile::CREATE) do |zf|
111
111
  save_config(zf) if
112
112
  manifest(zf) if
113
- resources(zf) if
114
- docs(zf) if
115
- libs(zf)
113
+ assets(zf) if
114
+ resources(zf) if
115
+ docs(zf) if
116
+ libs(zf)
116
117
  end
117
118
 
118
119
  target
@@ -171,6 +172,19 @@ module AndParcel
171
172
  true
172
173
  end
173
174
 
175
+ # For each asset to go into the ZIP file, add it
176
+ def assets(zf)
177
+ if opts[:assets]
178
+ files=AndParcel.glob(opts[:assets], opts[:project])
179
+
180
+ files.each do |fr|
181
+ zf.add(File.join('assets', fr.relative), fr.local)
182
+ end
183
+ end
184
+
185
+ true
186
+ end
187
+
174
188
  # Scan the manifest template and grab all children of
175
189
  # the <application> element
176
190
  def manifest(zf)
@@ -256,10 +270,11 @@ module AndParcel
256
270
  begin
257
271
  dependencies if
258
272
  manifest(zf) if
259
- resources(zf) if
260
- docs(zf) if
261
- libs(zf) if
262
- load_config(zf)
273
+ assets(zf) if
274
+ resources(zf) if
275
+ docs(zf) if
276
+ libs(zf) if
277
+ load_config(zf)
263
278
 
264
279
  FileUtils.mv dest, @parcel_root
265
280
  ensure
@@ -346,6 +361,22 @@ module AndParcel
346
361
  true
347
362
  end
348
363
 
364
+ def assets(zf)
365
+ dir=File.join(@root, 'assets')
366
+
367
+ zf.entries.each do |entry|
368
+ if (/^assets\/(.+)$/.match entry.name)
369
+ name=$1
370
+ dest=File.join(dir, File.dirname(name), File.basename(name))
371
+ FileUtils.mkdir_p File.dirname(dest)
372
+ File.unlink(dest) if File.exists?(dest)
373
+ entry.extract dest
374
+ end
375
+ end
376
+
377
+ true
378
+ end
379
+
349
380
  # If the parcel has a +ManifestMerge.xml+ file, back up and
350
381
  # then open the project's +AndroidManifest.xml+ file,
351
382
  # and merge in anything with a distinct name.
@@ -410,8 +441,9 @@ module AndParcel
410
441
  if dest
411
442
  Zip::ZipFile.open(dest) do |zf|
412
443
  manifest(zf) if
413
- resources(zf) if
414
- libs(zf)
444
+ assets(zf) if
445
+ resources(zf) if
446
+ libs(zf)
415
447
  end
416
448
 
417
449
  FileUtils.rm_rf @parcel_root
@@ -446,6 +478,20 @@ module AndParcel
446
478
  true
447
479
  end
448
480
 
481
+ def assets(zf)
482
+ dir=File.join(@root, 'assets')
483
+
484
+ zf.entries.each do |entry|
485
+ if (/^assets\/(.+)$/.match entry.name)
486
+ name=$1
487
+ dest=File.join(dir, File.dirname(name), File.basename(name))
488
+ File.unlink(dest) if File.exists?(dest)
489
+ end
490
+ end
491
+
492
+ true
493
+ end
494
+
449
495
  def manifest(zf)
450
496
  end
451
497
  end
@@ -465,7 +511,7 @@ module AndParcel
465
511
  @prefix_regexp=Regexp.compile(@prefix+'.*')
466
512
  @issues=0
467
513
 
468
- resources=AndParcel.glob('res', opts[:project])
514
+ resources=AndParcel.glob(opts[:res], opts[:project])
469
515
 
470
516
  resources.each do |fr|
471
517
  if fr.local.split('').last!='~'
@@ -481,6 +527,12 @@ module AndParcel
481
527
  end
482
528
  end
483
529
 
530
+ AndParcel.glob(opts[:assets], opts[:project]).each do |fr|
531
+ if fr.local.split('').last!='~'
532
+ do_simple_resource(fr)
533
+ end
534
+ end
535
+
484
536
  if @issues>0
485
537
  out.puts "#{@issues} issues reported #{'and fixed' if opts[:repair]}"
486
538
  end
@@ -0,0 +1 @@
1
+ Hello, world
@@ -0,0 +1 @@
1
+ Hello, world
data/test/test_install.rb CHANGED
@@ -62,13 +62,22 @@ Protest.context("when installing a parcel into a project") do
62
62
  :res=>'res')
63
63
  end
64
64
 
65
+ test "should support a parcel with assets" do
66
+ install_test(['tmp2/assets/andParcel_test_foo.txt',
67
+ 'tmp2/assets/bar/andParcel_test_goo.txt'],
68
+ :assets=>'assets')
69
+ end
70
+
65
71
  test "should support a parcel with all sorts of stuff" do
66
72
  install_test(['tmp2/res/layout/andParcel_test_row.xml',
67
73
  'tmp2/res/values/strings.xml',
68
74
  'tmp2/libs/one.jar',
69
75
  'tmp2/libs/two.jar',
76
+ 'tmp2/assets/andParcel_test_foo.txt',
77
+ 'tmp2/assets/bar/andParcel_test_goo.txt',
70
78
  'tmp2/parcels/andParcel-test/docs/README'],
71
79
  :res=>'res',
80
+ :assets=>'assets',
72
81
  :jars=>'libs',
73
82
  :docs=>['docs/README', 'docs/SomeOtherFile'])
74
83
  end
data/test/test_package.rb CHANGED
@@ -98,7 +98,34 @@ Protest.context("when packaging a parcel") do
98
98
  Zip::ZipFile.open(target) do |zf|
99
99
  zf.entries.each do |entry|
100
100
  if ('res/layout/andParcel_test_row.xml'==entry.name ||
101
- 'res/values/strings.xml'==entry.name)
101
+ 'res/values/andParcel_test_strings.xml'==entry.name)
102
+ matches+=1
103
+ end
104
+ end
105
+ end
106
+ assert matches==2
107
+ ensure
108
+ FileUtils.rm_rf 'tmp'
109
+ end
110
+ end
111
+
112
+ test "should support a parcel with assets" do
113
+ begin
114
+ FileUtils.mkdir 'tmp'
115
+ target=AndParcel::Parcel.package('test/ParcelToPackage/parcel.json',
116
+ :dir=>'tmp',
117
+ :assets=>'assets')
118
+ assert target=='tmp/andParcel-test_0.1.0.zip'
119
+ assert File.exists?(target)
120
+ config=load_config(target)
121
+ config_assert(config)
122
+
123
+ matches=0
124
+
125
+ Zip::ZipFile.open(target) do |zf|
126
+ zf.entries.each do |entry|
127
+ if ('assets/andParcel_test_foo.txt'==entry.name ||
128
+ 'assets/bar/andParcel_test_goo.txt'==entry.name)
102
129
  matches+=1
103
130
  end
104
131
  end
@@ -116,7 +143,8 @@ Protest.context("when packaging a parcel") do
116
143
  :dir=>'tmp',
117
144
  :jars=>'libs',
118
145
  :manifest=>'AndroidManifest.xml',
119
- :docs=>'docs')
146
+ :docs=>'docs',
147
+ :assets=>'assets')
120
148
  assert target=='tmp/andParcel-test_0.1.0.zip'
121
149
  assert File.exists?(target)
122
150
  config=load_config(target)
@@ -142,6 +170,18 @@ Protest.context("when packaging a parcel") do
142
170
  end
143
171
  end
144
172
  assert matches==1
173
+
174
+ matches=0
175
+
176
+ Zip::ZipFile.open(target) do |zf|
177
+ zf.entries.each do |entry|
178
+ if ('assets/andParcel_test_foo.txt'==entry.name ||
179
+ 'assets/bar/andParcel_test_goo.txt'==entry.name)
180
+ matches+=1
181
+ end
182
+ end
183
+ end
184
+ assert matches==2
145
185
  ensure
146
186
  FileUtils.rm_rf 'tmp'
147
187
  end
data/test/test_remove.rb CHANGED
@@ -56,17 +56,26 @@ Protest.context("when removing a parcel from a project") do
56
56
 
57
57
  test "should support a parcel with resources" do
58
58
  remove_test(['tmp2/res/layout/andParcel_test_row.xml',
59
- 'tmp2/res/values/strings.xml'],
59
+ 'tmp2/res/values/andParcel_test_strings.xml'],
60
60
  :res=>'res')
61
61
  end
62
62
 
63
+ test "should support a parcel with assets" do
64
+ remove_test(['tmp2/assets/andParcel_test_foo.txt',
65
+ 'tmp2/assets/bar/andParcel_test_goo.txt'],
66
+ :assets=>'assets')
67
+ end
68
+
63
69
  test "should support a parcel with all sorts of stuff" do
64
70
  remove_test(['tmp2/libs/one.jar',
65
71
  'tmp2/libs/two.jar',
72
+ 'tmp2/assets/andParcel_test_foo.txt',
73
+ 'tmp2/assets/bar/andParcel_test_goo.txt',
66
74
  'tmp2/res/layout/andParcel_test_row.xml',
67
- 'tmp2/res/values/strings.xml'],
75
+ 'tmp2/res/values/andParcel_test_strings.xml'],
68
76
  :docs=>'docs',
69
77
  :jars=>'libs',
78
+ :assets=>'assets',
70
79
  :res=>'res')
71
80
  end
72
81
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: andparcel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Murphy
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-05-25 00:00:00 -04:00
12
+ date: 2010-05-31 00:00:00 -04:00
13
13
  default_executable: parcel
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -105,6 +105,8 @@ files:
105
105
  - test/ParcelReceiver/res/values/strings.xml
106
106
  - test/ParcelReceiver/src/com/commonsware/android/pr/ParcelReceiver.java
107
107
  - test/ParcelToPackage/AndroidManifest.xml
108
+ - test/ParcelToPackage/assets/andParcel_test_foo.txt
109
+ - test/ParcelToPackage/assets/bar/andParcel_test_goo.txt
108
110
  - test/ParcelToPackage/build.properties
109
111
  - test/ParcelToPackage/build.xml
110
112
  - test/ParcelToPackage/default.properties
@@ -115,7 +117,7 @@ files:
115
117
  - test/ParcelToPackage/local.properties
116
118
  - test/ParcelToPackage/parcel.json
117
119
  - test/ParcelToPackage/res/layout/andParcel_test_row.xml
118
- - test/ParcelToPackage/res/values/strings.xml
120
+ - test/ParcelToPackage/res/values/andParcel_test_strings.xml
119
121
  - test/ParcelToPackage/src/com/commonsware/android/p2pkg/ParcelToPackage.java
120
122
  - test/ParcelToPackage/tmp/andParcel-test_0.1.0.zip
121
123
  - test/test_init.rb