Sha256: d0344eb3d46523ffcd4a32152a1a6be8f5847b57b10860071ca766fac248d6be

Contents?: true

Size: 503 Bytes

Versions: 396

Compression:

Stored size: 503 Bytes

Contents

class Nucleotide
  def self.from_dna(strand)
    acids = strand.chars
    fail ArgumentError.new("Invalid DNA #{strand}") unless acids.all?(&validate)
    new(acids)
  end

  def self.validate
    proc { |acid| %w(A C G T).include?(acid) }
  end

  attr_reader :acids

  def initialize(acids)
    @acids = acids
  end

  def histogram
    {
      'A' => count('A'),
      'T' => count('T'),
      'G' => count('G'),
      'C' => count('C')
    }
  end

  def count(acid)
    acids.count(acid)
  end
end

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.118 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.117 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.116 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.115 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.114 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.113 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.111 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.110 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.109 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.108 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.107 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.106 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.105 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.104 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.103 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.102 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.101 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.100 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.99 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb