Sha256: 8ad01acf51a528859e91ddd7d21f4b10135004c6fda34057db2a9db1fe0d7e94

Contents?: true

Size: 1.12 KB

Versions: 16

Compression:

Stored size: 1.12 KB

Contents

module Droiuby
  class Android
    class Otherwise
      
      def initialize
      end
      
      def otherwise(&block)
        @return_value = block.call
      end
      
      def value
        @return_value
      end
    end

    class DummyOtherwise
      
      def initialize(return_value)
        @return_value = return_value
      end
      
      def otherwise(&block)
        @return_value
      end
      
      def value
        @return_value
      end
    end

    def self.when_api(verb, level, &block)
      current_api_level = Java::android.os.Build::VERSION::SDK_INT
      case verb.to_sym
      when :is
        return DummyOtherwise.new(block.call) if current_api_level == level
      when :greater_than
        return DummyOtherwise.new(block.call) if current_api_level > level
      when :less_than
        return DummyOtherwise.new(block.call) if current_api_level < level
      when :at_least
        return DummyOtherwise.new(block.call) if current_api_level >= level
      when :at_most
        return DummyOtherwise.new(block.call) if current_api_level <= level
      end
      return Otherwise.new
    end

  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
droiuby-0.3.6 lib/droiuby/android.rb
droiuby-0.3.5 lib/droiuby/android.rb
droiuby-0.3.4 lib/droiuby/android.rb
droiuby-0.3.3 lib/droiuby/android.rb
droiuby-0.3.2 lib/droiuby/android.rb
droiuby-0.3.1 lib/droiuby/android.rb
droiuby-0.3.0 lib/droiuby/android.rb
droiuby-0.2.9 lib/droiuby/android.rb
droiuby-0.2.8 lib/droiuby/android.rb
droiuby-0.2.7 lib/droiuby/android.rb
droiuby-0.2.6 lib/droiuby/android.rb
droiuby-0.2.5 lib/droiuby/android.rb
droiuby-0.2.4 lib/droiuby/android.rb
droiuby-0.2.3 lib/droiuby/android.rb
droiuby-0.2.2 lib/droiuby/android.rb
droiuby-0.2.1 lib/droiuby/android.rb