ipa-parser 0.0.2 → 0.0.3

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 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