69 lines
2.3 KiB
Ruby
69 lines
2.3 KiB
Ruby
|
module Carto
|
||
|
|
||
|
class License
|
||
|
|
||
|
MIT_LICENSE = :mit
|
||
|
GPLV2_LICENSE = :gplv2
|
||
|
GPLV3_LICENSE = :gplv3
|
||
|
APACHE_LICENSE = :apache
|
||
|
PDDL_LICENSE = :pddl
|
||
|
CC_0 = :cc_0
|
||
|
CC_BY_LICENSE = :cc_by
|
||
|
CC_BY_NC_LICENSE = :cc_by_nc
|
||
|
CC_BY_SA_LICENSE = :cc_by_sa
|
||
|
CC_BY_ND_LICENSE = :cc_by_nd
|
||
|
CC_BY_NC_SA_LICENSE = :cc_by_nc_sa
|
||
|
CC_BY_NC_ND_LICENSE = :cc_by_nc_nd
|
||
|
PUBLIC_DOMAIN_LICENSE = :public_domain
|
||
|
OPEN_GOVERNMENT_LICENSE = :open_government
|
||
|
|
||
|
LICENSE_VALUES = {
|
||
|
MIT_LICENSE => { id: MIT_LICENSE, name: 'MIT' },
|
||
|
APACHE_LICENSE => { id: APACHE_LICENSE, name: 'Apache license' },
|
||
|
GPLV3_LICENSE => { id: GPLV3_LICENSE, name: 'GPLv3 license' },
|
||
|
GPLV2_LICENSE => { id: GPLV2_LICENSE, name: 'GPLv2 license' },
|
||
|
PDDL_LICENSE => { id: PDDL_LICENSE, name: 'Public Domain Dedication and License' },
|
||
|
CC_0 => { id: CC_0, name: 'CC0: CC Public domain' },
|
||
|
CC_BY_LICENSE => { id: CC_BY_LICENSE, name: 'CC BY: Attribution alone' },
|
||
|
CC_BY_NC_LICENSE => { id: CC_BY_NC_LICENSE, name: 'CC BY-NC: Attribution + Noncommercial' },
|
||
|
CC_BY_SA_LICENSE => { id: CC_BY_SA_LICENSE, name: 'CC BY-SA: Attribution + ShareAlike' },
|
||
|
CC_BY_ND_LICENSE => { id: CC_BY_ND_LICENSE, name: 'CC BY-ND: Attribution + NoDerivatives' },
|
||
|
CC_BY_NC_SA_LICENSE => { id: CC_BY_NC_SA_LICENSE, name: 'CC BY-NC-SA: Attribution + Noncommercial + ShareAlike' },
|
||
|
CC_BY_NC_ND_LICENSE => { id: CC_BY_NC_ND_LICENSE, name: 'CC BY-NC-ND: Attribution + Noncommercial + NoDerivatives' },
|
||
|
PUBLIC_DOMAIN_LICENSE => { id: PUBLIC_DOMAIN_LICENSE, name: 'Public domain' },
|
||
|
OPEN_GOVERNMENT_LICENSE => { id: OPEN_GOVERNMENT_LICENSE, name: 'Open Government License' }
|
||
|
}
|
||
|
|
||
|
attr_reader :id, :name
|
||
|
|
||
|
private_class_method :new
|
||
|
|
||
|
def self.find(license_id)
|
||
|
if !license_id.nil? && !license_id.empty? && LICENSE_VALUES.has_key?(license_id)
|
||
|
data = LICENSE_VALUES[license_id]
|
||
|
license = new(data[:id], data[:name])
|
||
|
license
|
||
|
else
|
||
|
return nil
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.all
|
||
|
values = []
|
||
|
LICENSE_VALUES.each do |k, v|
|
||
|
values << find(k)
|
||
|
end
|
||
|
values
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
attr_writer :id, :name
|
||
|
|
||
|
def initialize(id, name)
|
||
|
self.id = id
|
||
|
self.name = name
|
||
|
end
|
||
|
end
|
||
|
end
|