Class: Npmfed::NpmPackage
- Inherits:
-
Object
- Object
- Npmfed::NpmPackage
- Defined in:
- lib/npmfed/npm_package.rb
Instance Attribute Summary collapse
-
#debug ⇒ Object
Returns the value of attribute debug.
-
#dependencies ⇒ Object
Returns the value of attribute dependencies.
-
#fedora_rawhide_version ⇒ Object
Returns the value of attribute fedora_rawhide_version.
-
#koji_requests ⇒ Object
Returns the value of attribute koji_requests.
-
#name ⇒ Object
Returns the value of attribute name.
-
#npm_data ⇒ Object
Returns the value of attribute npm_data.
-
#npmjs_url ⇒ Object
Returns the value of attribute npmjs_url.
-
#pkgdb_requests ⇒ Object
Returns the value of attribute pkgdb_requests.
-
#tarball ⇒ Object
Returns the value of attribute tarball.
-
#version ⇒ Object
Returns the value of attribute version.
Instance Method Summary collapse
- #get_builds_for_deps ⇒ Object
- #get_dependencies ⇒ Object
-
#initialize(name, debug, version = nil) ⇒ NpmPackage
constructor
A new instance of NpmPackage.
- #licenses ⇒ Object
- #pkg_in_fedora?(name) ⇒ Boolean
- #pkgversion ⇒ Object
- #rpmname ⇒ Object
- #srcversion ⇒ Object
Constructor Details
#initialize(name, debug, version = nil) ⇒ NpmPackage
Returns a new instance of NpmPackage.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/npmfed/npm_package.rb', line 8 def initialize name, debug, version = nil #debuging options @koji_requests = 0 @pkgdb_requests = 0 @debug = debug @npmjs_url = URI("https://registry.npmjs.org/#{name}") @fedora_rawhide_version = "f24" @npm_data = JSON.parse Net::HTTP.get(@npmjs_url) @version = version || @npm_data["dist-tags"]["latest"] || abort("Can't determine version") @npm_data = @npm_data["versions"][@version] || abort("No such version: #{@version.inspect}") @name = @npm_data["name"] @dependencies = get_dependencies get_builds_for_deps end |
Instance Attribute Details
#debug ⇒ Object
Returns the value of attribute debug.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def debug @debug end |
#dependencies ⇒ Object
Returns the value of attribute dependencies.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def dependencies @dependencies end |
#fedora_rawhide_version ⇒ Object
Returns the value of attribute fedora_rawhide_version.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def fedora_rawhide_version @fedora_rawhide_version end |
#koji_requests ⇒ Object
Returns the value of attribute koji_requests.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def koji_requests @koji_requests end |
#name ⇒ Object
Returns the value of attribute name.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def name @name end |
#npm_data ⇒ Object
Returns the value of attribute npm_data.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def npm_data @npm_data end |
#npmjs_url ⇒ Object
Returns the value of attribute npmjs_url.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def npmjs_url @npmjs_url end |
#pkgdb_requests ⇒ Object
Returns the value of attribute pkgdb_requests.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def pkgdb_requests @pkgdb_requests end |
#tarball ⇒ Object
Returns the value of attribute tarball.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def tarball @tarball end |
#version ⇒ Object
Returns the value of attribute version.
5 6 7 |
# File 'lib/npmfed/npm_package.rb', line 5 def version @version end |
Instance Method Details
#get_builds_for_deps ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/npmfed/npm_package.rb', line 72 def get_builds_for_deps puts "Getting infromation about builds of package dependencies from koji" @koji_requests +=1 @dependencies.each do |name, data| IO.popen("koji search build -r 'nodejs-#{name}-[0-9]'") do |f| puts("checking builds for" + " #{name}".yellow) data[:builds] = f.readlines.collect {|build| build.chop } end unless data.nil? end puts "DONE".green end |
#get_dependencies ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/npmfed/npm_package.rb', line 32 def get_dependencies puts "Getting infromation about #{@name} and its dependencies from pkgdb" result = {} @npm_data['dependencies'].each do |name, version| pkgdb_data = pkg_in_fedora? name if pkgdb_data result["#{name}"] = {distgit_branches: Array.new, builds: Array.new} result["#{name}"][:distgit_branches] = pkgdb_data else result["#{name}"] = nil end end unless @npm_data['dependencies'].nil? puts "DONE".green return result end |
#licenses ⇒ Object
28 29 30 |
# File 'lib/npmfed/npm_package.rb', line 28 def licenses @npm_data['license'] end |
#pkg_in_fedora?(name) ⇒ Boolean
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/npmfed/npm_package.rb', line 60 def pkg_in_fedora? name @pkgdb_requests += 1 IO.popen("git ls-remote http://pkgs.fedoraproject.org/cgit/nodejs-" + name + ".git/") do |f| result = f.readlines.collect {|branch| branch.match(/\/[emf][a-z]*[0-9]*/).to_s[1..-1] } if result.empty? return false else return result.compact end end end |
#pkgversion ⇒ Object
52 53 54 |
# File 'lib/npmfed/npm_package.rb', line 52 def pkgversion @pkgversion ||= @version.tr('-', '_') end |
#rpmname ⇒ Object
56 57 58 |
# File 'lib/npmfed/npm_package.rb', line 56 def rpmname "nodejs-#{@name}" end |
#srcversion ⇒ Object
48 49 50 |
# File 'lib/npmfed/npm_package.rb', line 48 def srcversion @srcversion ||= @version end |