Module: Binary

Defined in:
lib/binary.rb,
lib/binary/version.rb

Constant Summary collapse

VERSION =
"1.3.0"

Class Method Summary collapse

Class Method Details

.binary(input = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
# File 'lib/binary.rb', line 7

def self.binary(input=nil)
  if input.class == Array
    input.map { |num| num.class == Integer ? num.abs.to_s(2) : nil }
  elsif input.class == Integer
    input = input.abs if input < 0
    input.to_s(2)
  else
    nil
  end
end

.bits(num = nil) ⇒ Object



28
29
30
31
32
# File 'lib/binary.rb', line 28

def self.bits num=nil
  return nil unless num
  binary = binary(num)
  binary.length
end

.method_missing(method, *args, &block) ⇒ Object



55
56
57
58
59
# File 'lib/binary.rb', line 55

def self.method_missing(method, *args, &block)
  puts "There's no method #{method} found in Binary module."
  puts 'Methods available are:'
  puts (Binary.methods - Object.methods - [:method_missing])
end

.number(input = nil) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/binary.rb', line 18

def self.number(input=nil)
  if input.class == Array
    input.map { |num| num.class == String ? num.to_i(2) : nil }
  elsif input.class == String
    input.to_i(2)
  else
    nil
  end
end

.ones(num = nil) ⇒ Object



40
41
42
43
44
# File 'lib/binary.rb', line 40

def self.ones num=nil
  return nil unless num
  binary = binary(num)
  binary.count("1")
end

.prime(num = nil) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/binary.rb', line 46

def self.prime num=nil
  return nil unless num
  binaries = []
  Prime.each(num) do |prime|
    binaries << binary(prime)
  end
  binaries
end

.zeros(num = nil) ⇒ Object



34
35
36
37
38
# File 'lib/binary.rb', line 34

def self.zeros num=nil
  return nil unless num
  binary = binary(num)
  binary.count("0")
end