zotplus-rakehelper 0.0.87 → 0.0.88

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: 5a23df79344e411adaa6bc3d1fbd9b54dd4d44d3
4
- data.tar.gz: 36616bb4f5a9c3c535a5c1540b5de4cd26e15c5e
3
+ metadata.gz: c1d3c412e52fbd3d1eb5937dafb84468a232157a
4
+ data.tar.gz: e9f1789c3ba93cb7b033923fde1b91165f7fdff2
5
5
  SHA512:
6
- metadata.gz: 432aa9dfbdb60464620c1cb624c6ecd380f019c2e76f5814c1f130648609e78bb26dc5c08ad28df32b3ab019e981ba74802340fe2d738ea5f19109ac202894cd
7
- data.tar.gz: f2c34056f06cd56586f92cb77a20b3cc2b66e670bc664997bbe379caaeee26ca95a277afaa00d1c0fc712cbdd7798487d56053e184bc02f17667ae0ebacb359a
6
+ metadata.gz: 3bdf78704e1f84a7a242328e95d2bd84164255f9ae4194c6dbb7a9275a57b88f6786c0e2d85ea18a3e24258f9d68abac08c7ae849c52f68f1ad2869b2c6acca8
7
+ data.tar.gz: 252d9d43cec2dc848c1867c2b202546ddc1d0a63dbbbf2d9c543fe1af6334cd2d7a75d2b1883bc9579b18057f4443e6cfe6289aacbc6657c57253c8d9c879b09
@@ -1,5 +1,5 @@
1
1
  module ZotPlus
2
2
  class RakeHelper
3
- VERSION = "0.0.87"
3
+ VERSION = "0.0.88"
4
4
  end
5
5
  end
@@ -12,6 +12,90 @@ EXTENSION = ID.gsub(/@.*/, '')
12
12
  RELEASE = Nokogiri::XML(File.open('install.rdf')).at('//em:version').inner_text
13
13
  XPI = "zotero-#{EXTENSION}-#{RELEASE}.xpi"
14
14
 
15
+ def makedepend
16
+ scanning = ZIPFILES.dup
17
+ scanned = []
18
+ dependencies={}
19
+ while scanning.length > 0
20
+ target = scanning.pop
21
+ scanned << target
22
+
23
+ next if target == 'Rakefile'
24
+
25
+ sources = []
26
+ case File.extname(target)
27
+ when '.js'
28
+ %w{coffee pegcoffee}.each{|ext|
29
+ src = File.join(File.dirname(target), File.basename(target, File.extname(target)) + ".#{ext}")
30
+ sources << src if File.file?(src)
31
+ }
32
+ if File.file?(target)
33
+ IO.readlines(target).each{|line|
34
+ next unless line =~ /^require\s*\(?\s*'([^'\n]+)'/
35
+ required = $1.strip
36
+ if %w{:constants: :header:}.include?(required)
37
+ required = 'Rakefile'
38
+ else
39
+ required = File.join(File.dirname(target), required)
40
+ end
41
+ scanning << required unless (scanned + scanning).include?(required)
42
+ sources << required
43
+ }
44
+ end
45
+
46
+ when '.json'
47
+ sources << File.join(File.dirname(target), File.basename(target, File.extname(target)) + '.yml')
48
+
49
+ when '.coffee'
50
+ if File.file?(target)
51
+ IO.readlines(target).each{|line|
52
+ next unless line =~ /^require\s*\(?\s*'([^'\n]+)'([^\n]*)/
53
+ required = $1.strip
54
+ if %w{:constants: :header:}.include?(required)
55
+ required = 'Rakefile'
56
+ else
57
+ required = File.join(File.dirname(target), required)
58
+ end
59
+ scanning << required unless (scanned + scanning).include?(required)
60
+ sources << required
61
+ }
62
+ end
63
+
64
+ when '.manifest', '.xul', '.rdf', '.dtd', '.properties', '.pem', '.svg', '.css', '.yml', '.pegcoffee'
65
+ else throw "Unexpected extension for #{target}"
66
+ end
67
+
68
+ sources.each{|source|
69
+ dependencies[source] ||= []
70
+ dependencies[source] << target
71
+ scanning << source unless (scanned + scanning).include?(source)
72
+ }
73
+ end
74
+
75
+ begin
76
+ done = true
77
+ dependencies.each_pair{|dependency, dependants|
78
+ dependants.each{|dep|
79
+ if File.extname(dep) == '.coffee'
80
+ done = false
81
+ dependants.delete(dep)
82
+ dependencies[dep].each{|d|
83
+ dependants << d
84
+ }
85
+ end
86
+ }
87
+ }
88
+ end until done
89
+
90
+ open('.depend.mf', 'w'){|dmf|
91
+ dependencies.each_pair{|dependency, dependants|
92
+ dmf.write("#{dependants.uniq.sort.collect{|d| d.shellescape }.join(' ')} : #{dependency.shellescape}\n")
93
+ }
94
+ }
95
+ end
96
+ makedepend
97
+ import '.depend.mf'
98
+
15
99
  file 'README.md' => ["www/#{EXTENSION}/index.md", 'install.rdf'] do |t|
16
100
  puts "Updating #{t.name}"
17
101
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zotplus-rakehelper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.87
4
+ version: 0.0.88
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emiliano Heyns
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-27 00:00:00.000000000 Z
11
+ date: 2015-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler