cartodb/app/models/carto/license.rb
2020-06-15 10:58:47 +08:00

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