Module: Binary

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

Constant Summary collapse

VERSION =
"1.3.1"

Class Method Summary collapse

Class Method Details

.array?(i) ⇒ Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/binary.rb', line 20

def self.array?(i)
	i.class == Array
end

.binary(i = nil) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/binary.rb', line 6

def self.binary(i=nil)
  return nil if block_given?
  return i.map { |n| n.class == Integer ? n.abs.to_s(2) : nil } if array? i
  i = i.abs if i.to_i < 0
  return i.to_s(2) if i.class == Integer
  nil
end

.bits(num = nil) ⇒ Object



24
25
26
27
# File 'lib/binary.rb', line 24

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

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



45
46
47
48
49
# File 'lib/binary.rb', line 45

def self.method_missing(method, *args, &block)
  puts "No method was found with the name #{method}."
  puts 'Methods available are:'
  puts (Binary.methods - Object.methods - [:method_missing])
end

.number(i = nil) ⇒ Object



14
15
16
17
18
# File 'lib/binary.rb', line 14

def self.number(i=nil)
  return i.map { |n| n.class == String ? n.to_i(2) : nil } if array? i
  return i.to_i(2) if i.class == String
  nil
end

.ones(num = nil) ⇒ Object



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

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

.prime(num = nil) ⇒ Object



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

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

.zeros(num = nil) ⇒ Object



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

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