]> nos-oignons.net Git - gestion-adh.git/blobdiff - lib/nos_oignons/subscriptions.rb
Rename Subscription to Member
[gestion-adh.git] / lib / nos_oignons / subscriptions.rb
diff --git a/lib/nos_oignons/subscriptions.rb b/lib/nos_oignons/subscriptions.rb
deleted file mode 100644 (file)
index de4ddf0..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-require 'safe_yaml'
-SafeYAML::OPTIONS[:default_mode] = :safe
-
-module NosOignons
-  SUBSCRIPTIONS_ROOT = 'Membres'
-  SUBSCRIPTION_FIELDS = [:name, :address, :email, :membership_fee_paid_on]
-  SUBSCRIPTION_MANDATORY_FIELDS = [:name, :email]
-
-  class Subscription < Struct.new(*SUBSCRIPTION_FIELDS)
-    class << self
-      def all
-        Dir.glob("#{SUBSCRIPTIONS_ROOT}/*.mdwn").sort.collect do |file|
-          subscription_id = File.basename(file).gsub(/\.mdwn$/, '')
-          Subscription.new(subscription_id)
-        end
-      end
-
-      def filename_for_id(subscription_id)
-        "Membres/%06d.mdwn" % subscription_id
-      end
-
-      def read_from_git(ref, file)
-        IO.popen(['git', 'show', "#{ref}:#{file}"]) do |f|
-          subscription_id = File.basename(file).gsub(/\.mdwn$/, '')
-          Subscription.new(subscription_id, f.read)
-        end
-      end
-    end
-
-    attr_reader :subscription_id
-
-    def initialize(subscription_id, page_content=nil)
-      unless subscription_id =~ /\A\d{6}\z/
-        raise ArgumentError.new('bad subscription id format')
-      end
-      @subscription_id = subscription_id
-      unless page_content
-        page_content = File.open(Subscription.filename_for_id(subscription_id)).read
-      end
-      unless page_content.start_with?("---\n")
-        raise ArgumentError.new('content is not a proper YAML document')
-      end
-      data = YAML.load(page_content)
-      SUBSCRIPTION_FIELDS.each do |field|
-        self[field] = data[field.to_s]
-      end
-      # Immutability for the win
-      SUBSCRIPTION_FIELDS.each do |field|
-        instance_eval{ undef :"#{field}=" }
-      end
-      SUBSCRIPTION_MANDATORY_FIELDS.each do |sym|
-        raise ArgumentError.new('missing mandatory fields') unless self[sym]
-      end
-      if membership_fee_paid_on && !membership_fee_paid_on.is_a?(Date)
-        raise ArgumentError.new('membership_fee_paid_on is not a date')
-      end
-    end
-
-    def up_to_date?
-      now = Time.now
-      last_year = Time.new(now.year - 1, now.month, now.day).to_date
-      membership_fee_paid_on && last_year < membership_fee_paid_on
-    end
-  end
-end