Module: Jekyll::Filters

Defined in:
lib/jekyll/FDroidFilters.rb

Constant Summary collapse

PREFIX =
%W(TiB GiB MiB KiB B).freeze
@@AndroidSdkLevelToVersionRelation =

Hash with relation between Android SDK Level and Android version

{
	'1' => '1.0',
	'2' => '1.1',
	'3' => '1.5',
	'4' => '1.6',
	'5' => '2.0',
	'6' => '2.0.1',
	'7' => '2.1',
	'8' => '2.2',
	'9' => '2.3',
	'10' => '2.3.3',
	'11' => '3.0',
	'12' => '3.1',
	'13' => '3.2',
	'14' => '4.0',
	'15' => '4.0.3',
	'16' => '4.1',
	'17' => '4.2',
	'18' => '4.3',
	'19' => '4.4',
	'20' => '4.4W',
	'21' => '5.0',
	'22' => '5.1',
	'23' => '6.0',
	'24' => '7.0',
	'25' => '7.1'
}
@@SpdxLicenseNameToGnuUrlRelation =

Hash with relation between SPDX license identifier and its full name and URL, mostly on GNU.org. For the beginning, I only used OSI approved and frequently used licenses.

{
	'AGPL-3.0' => {
		'name' => 'GNU Affero General Public License v3.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#AGPLv3.0'
		},
	'Apache-2.0' => {
		'name' => 'Apache License 2.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#apache2'
		},
	'BSD-2-Clause' => {
		'name' => 'BSD 2-clause "Simplified" License',
		'url' => 'https://www.gnu.org/licenses/license-list.html#FreeBSD'
		},
	'BSD-3-Clause' => {
		'name' => 'BSD 3-clause "New" or "Revised" License',
		'url' => 'https://www.gnu.org/licenses/license-list.html#ModifiedBSD'
		},
	'GPL-2.0' => {
		'name' => 'GNU General Public License v2.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#GPLv2'
		},
	'GPL-3.0' => {
		'name' => 'GNU General Public License v3.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#GNUGPLv3'
		},
	'ISC' => {
		'name' => 'ISC License',
		'url' => 'https://www.gnu.org/licenses/license-list.en.html#ISC'
		},
	'LGPL-2.1' => {
		'name' => 'GNU Lesser General Public License v2.1',
		'url' => 'https://www.gnu.org/licenses/license-list.html#LGPLv2.1'
		},
	'LGPL-3.0' => {
		'name' => 'GNU Lesser General Public License v3.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#LGPLv3'
		},
	'MIT' => {
		'name' => 'MIT License',
		'url' => 'https://www.gnu.org/licenses/license-list.html#X11License'
		},
	'MPL-1.1' => {
		'name' => 'Mozilla Public License 1.1',
		'url' => 'https://www.gnu.org/licenses/license-list.html#MPL'
		},
	'MPL-2.0' => {
		'name' => 'Mozilla Public License 2.0',
		'url' => 'https://www.gnu.org/licenses/license-list.html#MPL-2.0'
		}
}

Instance Method Summary collapse

Instance Method Details

#android_sdk_level_to_version(input) ⇒ Object

Convert an Android SDK level into an Android version.

input - Android SDK Level.

Returns the Android version.



27
28
29
30
31
32
33
# File 'lib/jekyll/FDroidFilters.rb', line 27

def android_sdk_level_to_version(input)
	sdkLevel = @@AndroidSdkLevelToVersionRelation[input]
	if not sdkLevel.nil?
		return sdkLevel
	end
	return '?'
end

#file_size_human_readable(input) ⇒ Object

Convert a file size to a human-readable String. Source: codereview.stackexchange.com/q/9107

input - File size in Bytes.

Returns human-readable String.



70
71
72
73
74
75
76
77
78
# File 'lib/jekyll/FDroidFilters.rb', line 70

def file_size_human_readable(input)
	input = input.to_f
	i = PREFIX.length - 1
	while input > 512 && i > 0
		i -= 1
		input /= 1024
	end
	return ((input > 9 || input.modulo(1) < 0.1 ? '%d' : '%.1f') % input) + ' ' + PREFIX[i]
end

#get_license_name(input) ⇒ Object

Convert a SPDX license identifier to its full name.

input - SPDX license identifier.

Returns full license name.



86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/jekyll/FDroidFilters.rb', line 86

def get_license_name(input)
	if input.nil? or input.empty?
		return 'Unknown'
	end
	spdxLicense = @@SpdxLicenseNameToGnuUrlRelation[input]
	if input.end_with? "+"
		spdxLicense = @@SpdxLicenseNameToGnuUrlRelation[input.chomp('+')]
	end
	if not spdxLicense.nil?
		if input.end_with? "+"
			return spdxLicense['name'] + ' or later version'
		end
		return spdxLicense['name']
	end
	return input
end

#get_license_url(input) ⇒ Object

Convert a SPDX license identifier to its URL on GNU.org.

input - SPDX license identifier.

Returns URL on GNU.org.



108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/jekyll/FDroidFilters.rb', line 108

def get_license_url(input)
	if input.nil? or input.empty?
		return ''
	end
	if input.end_with? "+"
		input = input.chomp('+')
	end
	spdxLicense = @@SpdxLicenseNameToGnuUrlRelation[input]
	if not spdxLicense.nil?
		return spdxLicense['url']
	end
	return 'https://spdx.org/licenses/' + input + '.html'
end