Class: Gems::Gem

Inherits:
Object
  • Object
show all
Defined in:
lib/gemverse/gems.rb

Overview

todo/check: rename or use Gem::Meta or such - why? why not?

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, version: nil, version_created: nil, version_downloads: nil, homepage: nil, yanked: nil, runtime: []) ⇒ Gem

Returns a new instance of Gem.



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/gemverse/gems.rb', line 81

def initialize( name:,
                version: nil,
                version_created: nil,
                version_downloads: nil,
                homepage: nil,
                yanked: nil,
                runtime: [] )

   @name              = name
   @version           = version
   @version_created   = version_created
   @version_downloads = version_downloads
   @homepage          = homepage
   @yanked            = yanked
   @runtime           = runtime
end

Instance Attribute Details

#homepageObject (readonly)

Returns the value of attribute homepage.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def homepage
  @homepage
end

#nameObject (readonly)

Returns the value of attribute name.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def name
  @name
end

#runtimeObject (readonly) Also known as: runtime_dependencies

Returns the value of attribute runtime.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def runtime
  @runtime
end

#versionObject (readonly)

Returns the value of attribute version.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def version
  @version
end

#version_createdObject (readonly)

Returns the value of attribute version_created.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def version_created
  @version_created
end

#version_downloadsObject (readonly)

Returns the value of attribute version_downloads.



55
56
57
# File 'lib/gemverse/gems.rb', line 55

def version_downloads
  @version_downloads
end

Class Method Details

.create(h) ⇒ Object

todo/check: rename to create_from_json or such - why? why not?



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/gemverse/gems.rb', line 61

def self.create( h )  ## todo/check: rename to  create_from_json or such - why? why not?
    ## optional keyword args
    kwargs = {
      version:           h['version'],
      ## only use year/month/day for now now hours etc. - why? why not
      version_created:   h['version_created_at'] ? Date.strptime( h['version_created_at'], '%Y-%m-%d' ) : nil,
      version_downloads: h['version_downloads'],
      ## note: (auto-)clean
      ##   for example - newline seen in "http://icanhasaudio.com/\n" !!!
      homepage: h['homepage_uri'] ? h['homepage_uri'].gsub( /[ \r\n]/, '')
      : nil,
      yanked:   h['yanked'],
      runtime:  h['dependencies']['runtime'].map { |dep| dep['name'] }
    }

    new( name: h['name'],
         **kwargs )
end

Instance Method Details

#yanked?Boolean

always return false if not defined - why? why not?

Returns:

  • (Boolean)


101
# File 'lib/gemverse/gems.rb', line 101

def yanked?()   @yanked.nil?  ? false : @yanked;  end