firefox_zip 0.0.1 → 0.0.2

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: fb14ca881dc2fe92525c56b0d4b843dbc4f995c1
4
- data.tar.gz: 2af2a48c5c42c9595e5648763fff115d1d397a3c
3
+ metadata.gz: 12014b63f84d9c251b72bbe49c7693b50c2effaf
4
+ data.tar.gz: 3e4daccc09733fdce63d67f7e1946664ae936585
5
5
  SHA512:
6
- metadata.gz: d509d45bd2501389ddd80d039aaf8058f4d7e4b9b664c53a10cb3c7897774d6a0293a53376d87a55910366e99ee354cd16d0e83ccd44ab7d419ae5216ac990cb
7
- data.tar.gz: 6cda3a0e5aba0e643915bd27911213d8c9549f898e7ec0b1efd63fe83ec4c5ca7ec3f315c404bd1acf1e6521c4e059a2cb2aedf17a233d0c693c0a380b1109d3
6
+ metadata.gz: a27b91ade5f648d670fae0b0320e5f3c7d890f3d0ce9cbe33d5f6db42a9aec7404a9e993dd1f27ed304550df8153181b2df3cea4a6390d9ce7ed3b5ce2523cf9
7
+ data.tar.gz: 3c30e3959b070667eed8073a1f5824bbc2506dedc37edc66ac03a18bc4fc12a4d2ca72f61a0ff3251ac2b78250899ff47764f61f438cc06089f854550b3c2276
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
- #source 'https://rubygems.org'
2
- source 'http://production.cf.rubygems.org'
1
+ source 'https://rubygems.org'
3
2
 
4
3
  # Specify your gem's dependencies in firefox_zip.gemspec
5
4
  gemspec
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- firefox_zip (0.0.0)
4
+ firefox_zip (0.0.2)
5
5
  rubyzip
6
6
 
7
7
  GEM
8
- remote: http://production.cf.rubygems.org/
8
+ remote: https://rubygems.org/
9
9
  specs:
10
10
  diff-lcs (1.2.5)
11
11
  rake (10.4.2)
data/README.md CHANGED
@@ -21,13 +21,18 @@ require 'firefox_zip'
21
21
 
22
22
  app = FirefoxZip.analyze('/path/to/firefox_app.zip')
23
23
 
24
- app.name # [String] app name
25
- app.description # [String] app description
26
- app.launch_path # [String] app launch path
27
- app.icon # [File] app default icon
28
- app.icons # [Array] app icons
29
- app.type # [String] app type
30
- app.permissions # [Array] app permissons
24
+ app.name # [String] app name
25
+ app.description # [String] app description
26
+ app.launch_path # [String] app launch path
27
+ app.icon # [File] app default icon
28
+ app.icons # [Array] app icons
29
+ app.developer # [Hash] app developer info
30
+ app.default_locale # [String] app default locale
31
+ app.locales # [Hash] app locales
32
+ app.type # [String] app type
33
+ app.permissions # [Array] app permissions
34
+ app.version # [String] app version
35
+ app.size # [Fixnum] app zip file size
31
36
  ```
32
37
 
33
38
  ## License
data/example/example.rb CHANGED
@@ -9,4 +9,9 @@ p app.icon # [File] app default icon
9
9
  p app.icons # [Array] app icons
10
10
  p app.type # [String] app type
11
11
  p app.permissions # [Array] app permissons
12
+ p app.developer # [Hash] app developer info
13
+ p app.default_locale # [String] app default locale
14
+ p app.locales # [Hash] app locales
15
+ p app.version # [String] app version
16
+ p app.size # [Fixnum] app zip file size
12
17
 
data/example/hello.zip CHANGED
Binary file
@@ -4,13 +4,14 @@ require 'zip'
4
4
  module FirefoxZip
5
5
  module Files
6
6
  class Project
7
- attr_reader :manifest_data, :icon, :icons
7
+ attr_reader :manifest_data, :icon, :icons, :size
8
8
  MANIFEST_FILE_NAME = 'manifest.webapp'
9
9
 
10
10
  def initialize(zip_file_path)
11
11
  return raise 'not zip file' unless File.exists? zip_file_path
12
12
 
13
13
  @zip_file_path = zip_file_path
14
+ @size = File.size(@zip_file_path)
14
15
 
15
16
  Dir.mktmpdir do |dir|
16
17
  project_dir_name = get_root_dir_name(@zip_file_path)
@@ -3,7 +3,13 @@ require 'json'
3
3
  module FirefoxZip
4
4
  module Parses
5
5
  class Manifest
6
- attr_reader :name, :description, :launch_path, :icons, :icon, :type, :permissions
6
+ attr_reader :name, :description, :launch_path,
7
+ :icons, :icon, :type, :permissions,
8
+ :developer, :locales, :default_locale,
9
+ :version
10
+
11
+ # 推奨するサイズ順に並んでる
12
+ SUPPORT_DEFAULT_ICON_SIZE = [512, 128, 60, 48, 16]
7
13
 
8
14
  def initialize(manifest_data)
9
15
  data = JSON.parse(manifest_data)
@@ -12,9 +18,25 @@ module FirefoxZip
12
18
  @description = data['description']
13
19
  @launch_path = data['launch_path']
14
20
  @icons = data['icons']
15
- @icon = data['icons']['16']
21
+ @icon = get_default_icon(data['icons'])
16
22
  @type = data['type']
17
23
  @permissions = data['permissions']
24
+ @developer = data['developer']
25
+ @locales = data['locales']
26
+ @default_locale = data['default_locale']
27
+ @version = data['version'].to_f
28
+ end
29
+
30
+ private
31
+
32
+ def get_default_icon(icons)
33
+ return nil if icons == nil
34
+
35
+ SUPPORT_DEFAULT_ICON_SIZE.each do |size|
36
+ return icons[size.to_s] if icons[size.to_s] != nil
37
+ end
38
+
39
+ nil
18
40
  end
19
41
  end
20
42
  end
@@ -1,3 +1,3 @@
1
1
  module FirefoxZip
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/lib/firefox_zip.rb CHANGED
@@ -3,7 +3,10 @@ require 'firefox_zip/files/project'
3
3
 
4
4
  module FirefoxZip
5
5
  class << self
6
- attr_reader :name, :description, :launch_path, :icons, :icon, :type, :permissions
6
+ attr_reader :name, :description, :launch_path,
7
+ :icons, :icon, :type, :permissions,
8
+ :developer, :locales, :default_locale,
9
+ :version, :size
7
10
 
8
11
  def analyze(file_path)
9
12
  project = Files::Project.new(file_path)
@@ -14,6 +17,11 @@ module FirefoxZip
14
17
  @icon = project.icon
15
18
  @type = project.manifest_data.type
16
19
  @permissions = project.manifest_data.permissions
20
+ @developer = project.manifest_data.developer
21
+ @locales = project.manifest_data.locales
22
+ @default_locale = project.manifest_data.default_locale
23
+ @version = project.manifest_data.version
24
+ @size = project.size
17
25
 
18
26
  self
19
27
  end
@@ -21,6 +21,11 @@ describe FirefoxZip::Files::Project do
21
21
  expect(@project.icons.class).to eq Array
22
22
  end
23
23
 
24
+ it 'get size' do
25
+ expect(@project.size).not_to be_nil
26
+ expect(@project.size.class).to eq Fixnum
27
+ end
28
+
24
29
  it 'nil' do
25
30
  expect{ FirefoxZip::Files::Project.new(File.expand_path('nil', __FILE__)) }.to raise_error
26
31
  end
@@ -29,7 +29,7 @@ describe FirefoxZip::Parses::Manifest do
29
29
  end
30
30
 
31
31
  it 'get icon' do
32
- expect(@manifest.icon).to eq "/icons/icon16x16.png"
32
+ expect(@manifest.icon).to eq "/icons/icon128x128.png"
33
33
  end
34
34
 
35
35
  it 'get type' do
@@ -40,6 +40,24 @@ describe FirefoxZip::Parses::Manifest do
40
40
  expect(@manifest.permissions).to match []
41
41
  end
42
42
 
43
+ it 'get developer' do
44
+ expect(@manifest.developer).to include("name" => "henteko",
45
+ "url" => "http://henteko07.com")
46
+ end
47
+
48
+ it 'get locales' do
49
+ expect(@manifest.locales).to include("ja" => {"name" => "test", "description" => "test"})
50
+ end
51
+
52
+ it 'get default_locale' do
53
+ expect(@manifest.default_locale).to eq 'ja'
54
+ end
55
+
56
+ it 'get version' do
57
+ expect(@manifest.version).to eq 1.0
58
+ expect(@manifest.version.class).to eq Float
59
+ end
60
+
43
61
  it 'blank' do
44
62
  expect{ FirefoxZip::Parses::Manifest.new('') }.to raise_error
45
63
  end
@@ -33,6 +33,26 @@ describe FirefoxZip do
33
33
  it 'get permissions' do
34
34
  expect(@app.permissions).to match []
35
35
  end
36
+
37
+ it 'get developer' do
38
+ expect(@app.developer).not_to be_nil
39
+ end
40
+
41
+ it 'get locales' do
42
+ expect(@app.locales).not_to be_nil
43
+ end
44
+
45
+ it 'get default_locale' do
46
+ expect(@app.default_locale).not_to be_nil
47
+ end
48
+
49
+ it 'get version' do
50
+ expect(@app.version).not_to be_nil
51
+ end
52
+
53
+ it 'get size' do
54
+ expect(@app.size).not_to be_nil
55
+ end
36
56
 
37
57
  it 'raise' do
38
58
  expect{ FirefoxZip.analyze('') }.to raise_error
Binary file
@@ -8,6 +8,22 @@
8
8
  "60": "/icons/icon60x60.png",
9
9
  "128": "/icons/icon128x128.png"
10
10
  },
11
+ "developer": {
12
+ "name": "henteko",
13
+ "url": "http://henteko07.com"
14
+ },
11
15
  "type": "privileged",
12
- "permissions": {}
16
+ "permissions": {},
17
+ "default_locale": "ja",
18
+ "locales": {
19
+ "it": {
20
+ "name": "L'Open Web",
21
+ "description": "Eccitante azione di sviluppo web open!"
22
+ },
23
+ "ja": {
24
+ "name": "test",
25
+ "description": "test"
26
+ }
27
+ },
28
+ "version": "1.0"
13
29
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: firefox_zip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - henteko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-29 00:00:00.000000000 Z
11
+ date: 2015-01-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubyzip