zotplus-rakehelper 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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: afedba60677aa9c0777691bd1d58fcb06da1f305
4
+ data.tar.gz: 21e023534a1346fed8f4ff27e1f9af577da0a1eb
5
+ SHA512:
6
+ metadata.gz: 86b1effde510a9b4ae536ca828fbe8ac8deaed58ddaf01e8e5da8a61c09af6c2056328b8f951e5587b7cd9c71538f7d807708809f0868a48d786bbdfaec6f7dd
7
+ data.tar.gz: 6cb8a2355c38c85e7cfc89601777f1a86b5545519d1df228fb4fdb5c2af127e4af9dfad4c79a2c4eb85c960f5d6b9a11bc6c51d7b5070ccfcd068310bd01ed66
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ pkg
2
+ test.*
3
+ install.rdf
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ #ruby=2.1
2
+ #ruby-gemset=zotero
3
+
4
+ source 'https://rubygems.org'
5
+
6
+ # Specify your gem's dependencies in gemspec
7
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,29 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ zotplus-rakehelper (0.0.2)
5
+ nokogiri
6
+ rake
7
+ rubyzip (>= 1.0.0)
8
+ typhoeus
9
+
10
+ GEM
11
+ remote: https://rubygems.org/
12
+ specs:
13
+ ethon (0.7.1)
14
+ ffi (>= 1.3.0)
15
+ ffi (1.9.3)
16
+ mini_portile (0.6.0)
17
+ nokogiri (1.6.3.1)
18
+ mini_portile (= 0.6.0)
19
+ rake (10.3.2)
20
+ rubyzip (1.1.6)
21
+ typhoeus (0.6.9)
22
+ ethon (>= 0.7.1)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ bundler (~> 1.3)
29
+ zotplus-rakehelper!
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 friflaj
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,2 @@
1
+ # Zotplus helpers
2
+
data/Rakefile ADDED
@@ -0,0 +1,22 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'fileutils'
3
+ require 'yaml'
4
+ require 'pp'
5
+
6
+ task :default => :build
7
+
8
+ task :bump do
9
+ version = ZotPlus::RakeHelper::VERSION.split('.').collect{|v| Integer(v)}
10
+ version[2] += 1
11
+ version = version.collect{|v| v.to_s}.join('.')
12
+ File.open('lib/zotplus-rakehelper/version.rb', 'w'){|f| f.write("module ZotPlus\n class RakeHelper\n VERSION = #{version.inspect}\n end\nend\n") }
13
+ puts `git add lib/zotplus-rakehelper/version.rb Gemfile.lock`
14
+ end
15
+
16
+ task :publish do
17
+ sh "git tag #{ZotPlus::RakeHelper::VERSION}"
18
+ Dir['pkg/*.gem'].each{|f| File.unlink(f)}
19
+ Rake::Task["build"].invoke
20
+ sh "gem push #{Dir['pkg/*.gem'].join(' ')}"
21
+ sh "git push"
22
+ end
@@ -0,0 +1,129 @@
1
+ require 'typhoeus'
2
+ require 'nokogiri'
3
+ require 'zip'
4
+
5
+ module ZotPlus
6
+ class RakeHelper
7
+ @id = Nokogiri::XML(File.open('install.rdf')).at('//em:id').inner_text
8
+ @extension = @id.gsub(/@.*/, '')
9
+ @release = Nokogiri::XML(File.open('install.rdf')).at('//em:version').inner_text
10
+ @update_rdf = "www/#{@extension}/update.rdf"
11
+
12
+ attr_reader :id, :extension, :release, :update_rdf, :sources
13
+
14
+ def initialize(extrasources=[])
15
+ @sources = %w{chrome test/import test/export resource defaults chrome.manifest install.rdf bootstrap.js}
16
+ .collect{|f| File.directory?(f) ? Dir["#{f}/**/*"] : f}.flatten
17
+ .select{|f| File.file?(f)}
18
+ .collect{|f| f.sub(/\.pegjs$/, '.js')}
19
+ .reject{|f| f =~ /[~]$/ || f =~ /\.swp$/} + extrasources
20
+ end
21
+
22
+ def xpi
23
+ "www/#{@extension}/zotero-#{@extension}-#{@release}#{@branch == 'master' ? '' : '-' + @branch}.xpi"
24
+ end
25
+
26
+ def geturl(url)
27
+ response = Typhoeus.get(url, {followlocation: true})
28
+ raise "Request failed" unless response.success?
29
+ return response.body
30
+ end
31
+
32
+ def download(url, file)
33
+ puts "Downloading #{url} to #{file}"
34
+ target = File.open(file, 'wb')
35
+ request = Typhoeus::Request.new(url, {followlocation: true})
36
+ request.on_headers do |response|
37
+ raise "Request failed: #{response.code.to_s}" unless response.code == 200 # response.success?
38
+ end
39
+ request.on_body do |chunk|
40
+ target.write(chunk)
41
+ end
42
+ request.on_complete do |response|
43
+ target.close
44
+ throw "download failed" unless response.success?
45
+ end
46
+ request.run
47
+ end
48
+
49
+ def make_readme
50
+ puts "Updating README.md"
51
+
52
+ md = open("www/#{@extension}/index.md").read
53
+ md.sub!(/^---(.|\n)+---\n/, '')
54
+ md.gsub!(/{% include ([^\s]+) %}/){ open("www/_includes/#{$1}").read }
55
+ md.gsub!(/\[([^!\]]+)\]\(([^\)]+)\)/) {
56
+ title = $1
57
+ url = $2
58
+ url = "/#{@extension}/#{url}" unless url =~ /^https?:/ || url =~ /^\//
59
+ url = "https://zotplus.github.io#{url}" unless url =~ /^https?:/
60
+ "[#{title}](#{url})"
61
+ }
62
+ open('README.md', 'w'){|f| f.write(md) }
63
+ end
64
+
65
+ def make_update_rdf
66
+ update_rdf = Nokogiri::XML(File.open(@update_rdf))
67
+ update_rdf.at('//em:version').content = @release
68
+ update_rdf.at('//RDF:Description')['about'] = "urn:mozilla:extension:#{@id}"
69
+ update_rdf.xpath('//em:updateLink').each{|link| link.content = "https://zotplus.github.io/#{@extension}/zotero-#{@extension}/#{@branch}/#{xpi}" }
70
+ update_rdf.xpath('//em:updateInfoURL').each{|link| link.content = "https://zotplus.github.io/#{@extension}" }
71
+ File.open(@update_rdf,'wb') {|f| update_rdf.write_xml_to f}
72
+ FileUtils.cp(@update_rdf, File.basename(@update_rdf))
73
+ end
74
+
75
+ def get_debugbridge
76
+ update = Nokogiri::XML(geturl('http://zotplus.github.io/debugbridge/update.rdf')).at('//em:updateLink').inner_text
77
+ debug_bridge = Dir['tmp/zotero-debug-bridge-*.xpi']
78
+ debug_bridge.each{|f| File.unlink(f)} if debug_bridge.size != 1 || update.sub(/.*\//, '') != File.basename(debug_bridge[0])
79
+ download(update, "tmp/#{update.sub(/.*\//, '')}") unless File.file?("tmp/#{update.sub(/.*\//, '')}")
80
+ end
81
+
82
+ def build(filelist)
83
+ Zip::File.open(t.name, 'w') do |zipfile|
84
+ filelist.each{|file|
85
+ if file.is_a?(Hash)
86
+ file.each_pair{|name, contents|
87
+ zipfile.get_output_stream(name){|f|
88
+ f.write(contents)
89
+ }
90
+ }
91
+ else
92
+ zipfile.add(file, file)
93
+ end
94
+ }
95
+ end
96
+ end
97
+
98
+ def bump(what=:patch)
99
+ release = @release.split('.').collect{|n| Integer(n)}
100
+ release = case what
101
+ when :major then [release[0] + 1, 0, 0]
102
+ when :minor then [release[0], release[1] + 1, 0]
103
+ when :patch then [release[0], release[1], release[2] + 1]
104
+ else raise "Unexpected release increase #{what.inspect}"
105
+ end
106
+ release = release.collect{|n| n.to_s}.join('.')
107
+
108
+ open("www/_includes/#{@extension}-version.html", 'w'){|f| f.write(release) }
109
+
110
+
111
+ install_rdf = Nokogiri::XML(File.open('install.rdf'))
112
+ install_rdf.at('//em:version').content = release
113
+ install_rdf.at('//em:updateURL').content = "https://zotplus.github.io/#{@extension}/update.rdf"
114
+ File.open('install.rdf','wb') {|f| install_rdf.write_xml_to f}
115
+ puts `git add install.rdf`
116
+ system "/bin/sh -lc rake"
117
+ system "/bin/sh -lc rake README.md update.rdf"
118
+ puts "Release set to #{release}. Please publish."
119
+ end
120
+
121
+ def publish
122
+ system "git add #{xpi} *.rdf"
123
+ system "git commit -am #{@release}"
124
+ system "git tag #{@release}"
125
+ system "git push"
126
+ system "cd www; rake publish"
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,5 @@
1
+ module ZotPlus
2
+ class RakeHelper
3
+ VERSION = "0.0.2"
4
+ end
5
+ end
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'zotplus-rakehelper/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "zotplus-rakehelper"
8
+ spec.version = ZotPlus::RakeHelper::VERSION
9
+ spec.authors = ["Emiliano Heyns"]
10
+ spec.email = ["Emiliano.Heyns@iris-advies.com"]
11
+ spec.description = %q{ZotPlus rake helper}
12
+ spec.summary = %q{ZotPlus rake helper methods}
13
+ spec.homepage = "http://zotplus.github.io"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+ spec.required_ruby_version = '>= 1.9'
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.3"
23
+
24
+ spec.add_runtime_dependency 'rake', '>= 0', '>= 0'
25
+ spec.add_runtime_dependency 'typhoeus'
26
+ spec.add_runtime_dependency 'nokogiri'
27
+ spec.add_runtime_dependency 'rubyzip', '>= 1.0.0' # will load new rubyzip version
28
+ end
metadata ADDED
@@ -0,0 +1,123 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: zotplus-rakehelper
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Emiliano Heyns
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-17 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: typhoeus
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubyzip
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: 1.0.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.0.0
83
+ description: ZotPlus rake helper
84
+ email:
85
+ - Emiliano.Heyns@iris-advies.com
86
+ executables: []
87
+ extensions: []
88
+ extra_rdoc_files: []
89
+ files:
90
+ - ".gitignore"
91
+ - Gemfile
92
+ - Gemfile.lock
93
+ - LICENSE.txt
94
+ - README.md
95
+ - Rakefile
96
+ - lib/zotplus-rakehelper.rb
97
+ - lib/zotplus-rakehelper/version.rb
98
+ - zotplus-rakehelper.gemspec
99
+ homepage: http://zotplus.github.io
100
+ licenses:
101
+ - MIT
102
+ metadata: {}
103
+ post_install_message:
104
+ rdoc_options: []
105
+ require_paths:
106
+ - lib
107
+ required_ruby_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: '1.9'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
117
+ requirements: []
118
+ rubyforge_project:
119
+ rubygems_version: 2.2.2
120
+ signing_key:
121
+ specification_version: 4
122
+ summary: ZotPlus rake helper methods
123
+ test_files: []