ipa-parser 0.0.2 → 0.0.3

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: 6818377cd3f7ee2c7ee390a52506d52ff2023b64
4
- data.tar.gz: 0a7ea96341d2940fd47781e67d3188197b2252e8
3
+ metadata.gz: b7b97491c42b899892444e373e1828981199a37f
4
+ data.tar.gz: fc008930d7824742330eae44fd2450e0163b38f9
5
5
  SHA512:
6
- metadata.gz: 8348fb20f3f0af67cb4d8fb4399022aa5365332eb0c102830e16b6d9e0f874a32f5a94143bf3e091ec628c12e0a5334f4a4bc8d2896f50a23535d40a7d4cdbf1
7
- data.tar.gz: 5560c997702702d33cfadb4f0cb676b022ca3c289469e223cb41d3c05113ffdb2b2f02f297d9508a6f5e3404a5a6f2e06e3193d6c94f84761d210fdfca106ab4
6
+ metadata.gz: 37406e74a5e5e85033363acb802a8332c61b7f7beceebf40f3f6a64e66228bb6078f6c068c5ac457039b7567c34e6f18f6e8cbecaec5ff1488df790609d45721
7
+ data.tar.gz: 514ca535486c3645e22bf023467e0510de67f9e1ec5661e9f46174a601b4c634813fd84af25158152e29d6ca5a15ea6efd683df6cfa0acd4de6a16f2821228e9
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # IpaParser
2
2
 
3
- Extract information from a ipa file
3
+ Extract information from a ipa file, such as name, identifier and uncrushed icons etc
4
4
 
5
5
  ## Installation
6
6
 
data/ipa-parser.gemspec CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
- spec.add_dependency 'CFPropertyList', '~> 2.2.0'
21
+ spec.add_dependency 'CFPropertyList', '~> 2.3.3'
22
22
  spec.add_dependency 'rubyzip', '~> 1.1.0'
23
23
 
24
24
  spec.add_development_dependency "bundler", "~> 1.6"
@@ -1,3 +1,3 @@
1
1
  module IpaParser
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/ipa-parser.rb CHANGED
@@ -23,67 +23,17 @@ module IpaParser
23
23
 
24
24
  def initialize(ipa_file)
25
25
  @ipa_file = Zip::File.open(ipa_file)
26
- end
27
-
28
- def info
29
26
  @ipa_file.each do |entry|
30
- if entry.name.match(/Payload\/(.)*\.app\/Info.plist/)
27
+ if entry.name.match(/(.)*\.app\/Info.plist/)
31
28
  @plist_path = entry.name
32
29
  @plist_bin = entry.get_input_stream.read
33
30
  end
34
31
  end
35
-
36
- plist = CFPropertyList::List.new(:data => @plist_bin)
37
- data = CFPropertyList.native_types(plist.value)
32
+ @plist = CFPropertyList::List.new(:data => @plist_bin)
38
33
  end
39
34
 
40
- def icons
41
- matched_entries = []
42
- icon_file_names.each do |file_name|
43
- @ipa_file.each do |entry|
44
- if entry.name.match(/Payload\/(.)*\.app\/#{file_name}(.)*.png/)
45
- matched_entries << @ipa_file.read(entry.name)
46
- end
47
- end
48
- end
49
- matched_entries
50
- end
51
-
52
- # normally the last icon has the highest resolution
53
- # icons in the ipa file are crushed, cannot display in browsers other than Safari
54
- def crushed_icon
55
- icons.last
56
- end
57
-
58
- def icon_file_names
59
- begin
60
- # icon names may or may not include '.png', so remove .png suffix for consistence
61
- info["CFBundleIcons"]["CFBundlePrimaryIcon"]["CFBundleIconFiles"].map { |f| File::basename(f, '.png' ) }
62
- rescue NoMethodError => e
63
- []
64
- end
65
- end
66
-
67
- def icon
68
- if crushed_icon
69
- crushed_file = Tempfile.new('crushed_icon.png', :encoding => 'ascii-8bit')
70
- uncrushed_file = Tempfile.new('uncrushed_icon.png', :encoding => 'ascii-8bit')
71
- begin
72
- crushed_file.write(crushed_icon)
73
- png_bin = File.expand_path("../../bin/pngcrush", __FILE__)
74
- cmd = "#{png_bin} -revert-iphone-optimizations "
75
- cmd << crushed_file.path + " " + uncrushed_file.path
76
- `#{cmd}`
77
- @data = uncrushed_file.read
78
- ensure
79
- crushed_file.close
80
- uncrushed_file.close
81
- crushed_file.unlink
82
- uncrushed_file.unlink
83
- end
84
- end
85
- @data
35
+ def info
36
+ CFPropertyList.native_types(@plist.value)
86
37
  end
87
-
88
38
  end
89
39
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipa-parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - astro2linus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-13 00:00:00.000000000 Z
11
+ date: 2016-09-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: CFPropertyList
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 2.2.0
19
+ version: 2.3.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 2.2.0
26
+ version: 2.3.3
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rubyzip
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -103,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
103
103
  version: '0'
104
104
  requirements: []
105
105
  rubyforge_project:
106
- rubygems_version: 2.2.2
106
+ rubygems_version: 2.5.1
107
107
  signing_key:
108
108
  specification_version: 4
109
109
  summary: Extract information from a iPA file