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.139 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.138 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.137 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.136 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.135 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.134 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.133 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.132 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.131 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.130 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.129 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.128 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.127 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.126 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.125 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.124 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.123 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.122 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.121 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.120 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb