2 SafeYAML::OPTIONS[:default_mode] = :safe
4 SUBSCRIPTIONS_ROOT = 'Membres'
6 def is_valid_subscription?(content)
7 return false if content.length == 0
8 return false unless content.start_with?("---\n")
10 data = YAML.load(content)
15 ['name', 'email'].each do |key|
16 return false unless data.include?(key)
18 if data.include?('membership_fee_paid_on')
19 return false unless data['membership_fee_paid_on'].is_a?(Date)
24 def is_valid_subscription_file?(ref, file)
25 IO.popen(['git', 'show', "#{ref}:#{file}"]) do |f|
26 is_valid_subscription?(f.read)
30 def read_subscriptions
32 Dir.glob("#{SUBSCRIPTIONS_ROOT}/*.mdwn") do |file|
33 subscription_id = File.basename(file).gsub(/\.mdwn$/, '')
34 subscriptions[subscription_id] = YAML.load_file(file)