Sha256: cc3d74231f0a569566bf084fc9a8963f1cd5041826df544758fea6d99e6f2333
Contents?: true
Size: 1.71 KB
Versions: 2
Compression:
Stored size: 1.71 KB
Contents
module LicenseFinder::License class << self def all @all ||= [] end def find_by_name(license_name) all.detect { |l| l.names.map(&:downcase).include? license_name.to_s.downcase } end end class Text def initialize(text) @text = normalized(text) end def to_s @text end private def normalized(text) text.gsub(/\s+/, ' ').gsub(/['`"]{1,2}/, "\"") end end class Base class << self attr_accessor :license_url, :alternative_names def inherited(descendant) LicenseFinder::License.all << descendant end def names ([demodulized_name, pretty_name] + self.alternative_names).uniq end def alternative_names @alternative_names ||= [] end def demodulized_name name.gsub(/^.*::/, '') end def slug demodulized_name.downcase end def pretty_name demodulized_name end def license_text unless defined?(@license_text) template = File.join(LicenseFinder::ROOT_PATH, "data", "licenses", "#{demodulized_name}.txt").to_s @license_text = Text.new(File.read(template)).to_s if File.exists?(template) end @license_text end def license_regex /#{Regexp.escape(license_text).gsub(/<[^<>]+>/, '(.*)')}/ if license_text end end def initialize(text) self.text = text end attr_reader :text def text=(text) @text = Text.new(text).to_s end def matches? !!(text =~ self.class.license_regex if self.class.license_regex) end end end Dir[File.join(File.dirname(__FILE__), 'license', '*.rb')].each do |license| require license end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
license_finder-0.7.3 | lib/license_finder/license.rb |
license_finder-0.7.1 | lib/license_finder/license.rb |