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.98 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.97 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.96 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.95 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.94 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.93 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.92 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.91 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.90 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.89 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.88 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.87 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.86 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.85 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.84 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.83 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.82 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.81 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.80 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.79 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb