Sha256: 387455cd2fb76bef6049edab899237858759f21b402008940ab3a18787dfcb77

Contents?: true

Size: 1.84 KB

Versions: 9

Compression:

Stored size: 1.84 KB

Contents

module Granify
  module Controller
    class Generate < Controller::Base
      attr_accessor :force

      def pre_exec
        begin
          # interface with the Evernote API so we can use it later
          @model = Granify::Helper.load('evernote')

          # all methods require internet to make API calls
          @methods_require_internet.push(:daily, :weekly, :monthly)

          # user = @model.user
          # Notify.success("Welcome, #{user.name} (#{user.username})")
        rescue ::Evernote::EDAM::Error::EDAMSystemException => e
          Notify.error("Evernote.authenticate error\n#{e.message} (#{e.errorCode})")
        rescue ::Evernote::EDAM::Error::EDAMUserException => e
          Notify.error("Evernote.authenticate error\n#{e.parameter} (#{e.errorCode})")
        end

        OptionParser.new do |opt|
          opt.banner = "#{Granify::PACKAGE_NAME} generate timeframe [...-flags]"

          opt.on("-f", "--force", "Force execution") do
            @force = true
          end
        end.parse!

        super
      end

      # generate daily notes
      def daily
        if !@force
          if @model.note_exists
            Notify.error("There's already a log for today!")
          end
        end

        @model.create_note
      end

      # generate weekly notes
      def weekly
        if !@force
          if @model.note_exists
            Notify.error("There's already a log for this week!")
          end


          if !Date.today.monday?
            Notify.error("Sorry, you can only create new weekly logs on Mondays")
          end
        end

        @model.create_note
      end

      # generate monthly notes
      def monthly
        if !@force
          if @model.note_exists
            Notify.error("There's already a log for this month!")
          end
        end

        @model.create_note
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
evertils-0.1.14 lib/controllers/generate.rb
evertils-0.1.13 lib/controllers/generate.rb
evertils-0.1.12 lib/controllers/generate.rb
evertils-0.1.11 lib/controllers/generate.rb
evertils-0.1.9 lib/controllers/generate.rb
evertils-0.1.8 lib/controllers/generate.rb
evertils-0.1.7 lib/controllers/generate.rb
evertils-0.1.6 lib/controllers/generate.rb
evertils-0.1.5 lib/controllers/generate.rb