firefox_zip 0.0.1 → 0.0.2

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