Class: Extensionator::Manifest
- Inherits:
-
Object
- Object
- Extensionator::Manifest
- Defined in:
- lib/extensionator/manifest.rb
Instance Method Summary collapse
-
#initialize(dir) ⇒ Manifest
constructor
A new instance of Manifest.
- #inject_key(priv_key) ⇒ Object
- #inject_version(version) ⇒ Object
- #strip_key ⇒ Object
- #updated? ⇒ Boolean
- #validate(paths) ⇒ Object
- #write ⇒ Object
Constructor Details
#initialize(dir) ⇒ Manifest
Returns a new instance of Manifest.
7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/extensionator/manifest.rb', line 7 def initialize(dir) manifest_file = "#{dir}/manifest.json" raise "Can't find manifest file" unless File.exists? manifest_file begin @manifest = JSON.parse(File.read(manifest_file)) rescue Errno::ENOTENT => e raise ValidationError.new("Can't read manifest file: #{e.}") rescue JSON::ParserError => e raise ValidationError.new("Can't parse manifest file: #{e.}") end end |
Instance Method Details
#inject_key(priv_key) ⇒ Object
26 27 28 29 30 |
# File 'lib/extensionator/manifest.rb', line 26 def inject_key(priv_key) #Chrome appears to support some shorter encoding of the pub key, but I'm not sure what it is @manifest["key"] = Base64.encode64(priv_key.public_key.to_der).gsub("\n", "") @updated = true end |
#inject_version(version) ⇒ Object
37 38 39 40 |
# File 'lib/extensionator/manifest.rb', line 37 def inject_version(version) @manifest["version"] = version @updated = true end |
#strip_key ⇒ Object
32 33 34 35 |
# File 'lib/extensionator/manifest.rb', line 32 def strip_key @manifest.delete("key") @updated = true end |
#updated? ⇒ Boolean
42 43 44 |
# File 'lib/extensionator/manifest.rb', line 42 def updated? @updated || false end |
#validate(paths) ⇒ Object
21 22 23 24 |
# File 'lib/extensionator/manifest.rb', line 21 def validate(paths) #todo: actual validations! true end |
#write ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/extensionator/manifest.rb', line 46 def write dir = "/tmp/extensionator" FileUtils.mkdir_p(dir) file = "#{dir}/crx-manifest.json" content = JSON.pretty_generate(@manifest) File.open(file, "w"){|f| f.write(content)} ["manifest.json", file] end |