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.159 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.158 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.157 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.156 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.155 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.154 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.153 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.152 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.151 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.150 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.149 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.148 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.147 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.146 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.145 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.144 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.143 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.142 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.141 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb
trackler-2.2.1.140 tracks/ruby/exercises/nucleotide-count/.meta/solutions/nucleotide_count.rb