chemistry 0.0.3 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Rakefile +2 -10
 - data/chemistry.gemspec +3 -0
 - data/lib/chemistry/version.rb +1 -1
 - data/test/test_helper.rb +0 -6
 - metadata +37 -28
 - data/lib/chemistry/dsl.rb +0 -15
 - data/lib/chemistry/element.rb +0 -41
 - data/lib/chemistry/element/beryllium.rb +0 -7
 - data/lib/chemistry/element/boron.rb +0 -7
 - data/lib/chemistry/element/helium.rb +0 -7
 - data/lib/chemistry/element/hydrogen.rb +0 -7
 - data/lib/chemistry/element/lithium.rb +0 -7
 - data/lib/chemistry/temperature.rb +0 -33
 - data/lib/chemistry/temperature/celsius.rb +0 -27
 - data/lib/chemistry/temperature/fahrenheit.rb +0 -23
 - data/lib/chemistry/temperature/kelvin.rb +0 -23
 - data/test/chemistry/temperature/test_celsius.rb +0 -28
 - data/test/chemistry/temperature/test_fahrenheit.rb +0 -15
 - data/test/chemistry/temperature/test_kelvin.rb +0 -28
 - data/test/chemistry/test_dsl.rb +0 -43
 - data/test/chemistry/test_element.rb +0 -101
 - data/test/chemistry/test_temperature.rb +0 -36
 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,13 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "bundler/gem_tasks"
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
            TEST_FILES = LIB_FILES.pathmap('%{^lib,test}d/test_%f')
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            task :test do
         
     | 
| 
       8 
     | 
    
         
            -
              TEST_FILES.zip(LIB_FILES).each do |test_file, lib_file|
         
     | 
| 
       9 
     | 
    
         
            -
                ruby "-I lib -I . -I test -r #{lib_file} #{test_file}"
         
     | 
| 
       10 
     | 
    
         
            -
              end
         
     | 
| 
      
 3 
     | 
    
         
            +
            task :default do
         
     | 
| 
      
 4 
     | 
    
         
            +
              puts 'Smile :D'
         
     | 
| 
       11 
5 
     | 
    
         
             
            end
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            task :default => :test
         
     | 
    
        data/chemistry.gemspec
    CHANGED
    
    | 
         @@ -16,4 +16,7 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       16 
16 
     | 
    
         
             
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         
     | 
| 
       17 
17 
     | 
    
         
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       18 
18 
     | 
    
         
             
              gem.require_paths = ["lib"]
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              gem.add_dependency('chemistry-element')
         
     | 
| 
      
 21 
     | 
    
         
            +
              gem.add_dependency('chemistry-temperature')
         
     | 
| 
       19 
22 
     | 
    
         
             
            end
         
     | 
    
        data/lib/chemistry/version.rb
    CHANGED
    
    
    
        data/test/test_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: chemistry
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 
         
     | 
| 
       6 
6 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
7 
     | 
    
         
             
            authors:
         
     | 
| 
         @@ -9,8 +9,40 @@ authors: 
     | 
|
| 
       9 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       11 
11 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       12 
     | 
    
         
            -
            date: 2012-08- 
     | 
| 
       13 
     | 
    
         
            -
            dependencies: 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-08-12 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: chemistry-element
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 18 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 19 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 20 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 21 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 22 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 23 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 25 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 26 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 27 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 28 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 29 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 30 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 31 
     | 
    
         
            +
              name: chemistry-temperature
         
     | 
| 
      
 32 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 33 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 34 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 35 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 36 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 37 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 38 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 39 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 40 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 41 
     | 
    
         
            +
                none: false
         
     | 
| 
      
 42 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 43 
     | 
    
         
            +
                - - ! '>='
         
     | 
| 
      
 44 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 45 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       14 
46 
     | 
    
         
             
            description: Chemistry is a toolkit for dealing with compounds
         
     | 
| 
       15 
47 
     | 
    
         
             
            email:
         
     | 
| 
       16 
48 
     | 
    
         
             
            - isaac@isaacbfsanders.com
         
     | 
| 
         @@ -26,24 +58,7 @@ files: 
     | 
|
| 
       26 
58 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       27 
59 
     | 
    
         
             
            - chemistry.gemspec
         
     | 
| 
       28 
60 
     | 
    
         
             
            - lib/chemistry.rb
         
     | 
| 
       29 
     | 
    
         
            -
            - lib/chemistry/dsl.rb
         
     | 
| 
       30 
     | 
    
         
            -
            - lib/chemistry/element.rb
         
     | 
| 
       31 
     | 
    
         
            -
            - lib/chemistry/element/beryllium.rb
         
     | 
| 
       32 
     | 
    
         
            -
            - lib/chemistry/element/boron.rb
         
     | 
| 
       33 
     | 
    
         
            -
            - lib/chemistry/element/helium.rb
         
     | 
| 
       34 
     | 
    
         
            -
            - lib/chemistry/element/hydrogen.rb
         
     | 
| 
       35 
     | 
    
         
            -
            - lib/chemistry/element/lithium.rb
         
     | 
| 
       36 
     | 
    
         
            -
            - lib/chemistry/temperature.rb
         
     | 
| 
       37 
     | 
    
         
            -
            - lib/chemistry/temperature/celsius.rb
         
     | 
| 
       38 
     | 
    
         
            -
            - lib/chemistry/temperature/fahrenheit.rb
         
     | 
| 
       39 
     | 
    
         
            -
            - lib/chemistry/temperature/kelvin.rb
         
     | 
| 
       40 
61 
     | 
    
         
             
            - lib/chemistry/version.rb
         
     | 
| 
       41 
     | 
    
         
            -
            - test/chemistry/temperature/test_celsius.rb
         
     | 
| 
       42 
     | 
    
         
            -
            - test/chemistry/temperature/test_fahrenheit.rb
         
     | 
| 
       43 
     | 
    
         
            -
            - test/chemistry/temperature/test_kelvin.rb
         
     | 
| 
       44 
     | 
    
         
            -
            - test/chemistry/test_dsl.rb
         
     | 
| 
       45 
     | 
    
         
            -
            - test/chemistry/test_element.rb
         
     | 
| 
       46 
     | 
    
         
            -
            - test/chemistry/test_temperature.rb
         
     | 
| 
       47 
62 
     | 
    
         
             
            - test/test_chemistry.rb
         
     | 
| 
       48 
63 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
| 
       49 
64 
     | 
    
         
             
            homepage: http://isaacbfsanders.com/chemistry
         
     | 
| 
         @@ -60,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       60 
75 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       61 
76 
     | 
    
         
             
                  segments:
         
     | 
| 
       62 
77 
     | 
    
         
             
                  - 0
         
     | 
| 
       63 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 78 
     | 
    
         
            +
                  hash: 2683493068438182152
         
     | 
| 
       64 
79 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
80 
     | 
    
         
             
              none: false
         
     | 
| 
       66 
81 
     | 
    
         
             
              requirements:
         
     | 
| 
         @@ -69,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       69 
84 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       70 
85 
     | 
    
         
             
                  segments:
         
     | 
| 
       71 
86 
     | 
    
         
             
                  - 0
         
     | 
| 
       72 
     | 
    
         
            -
                  hash:  
     | 
| 
      
 87 
     | 
    
         
            +
                  hash: 2683493068438182152
         
     | 
| 
       73 
88 
     | 
    
         
             
            requirements: []
         
     | 
| 
       74 
89 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       75 
90 
     | 
    
         
             
            rubygems_version: 1.8.24
         
     | 
| 
         @@ -77,11 +92,5 @@ signing_key: 
     | 
|
| 
       77 
92 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       78 
93 
     | 
    
         
             
            summary: Chemistry is a toolkit for dealing with compounds
         
     | 
| 
       79 
94 
     | 
    
         
             
            test_files:
         
     | 
| 
       80 
     | 
    
         
            -
            - test/chemistry/temperature/test_celsius.rb
         
     | 
| 
       81 
     | 
    
         
            -
            - test/chemistry/temperature/test_fahrenheit.rb
         
     | 
| 
       82 
     | 
    
         
            -
            - test/chemistry/temperature/test_kelvin.rb
         
     | 
| 
       83 
     | 
    
         
            -
            - test/chemistry/test_dsl.rb
         
     | 
| 
       84 
     | 
    
         
            -
            - test/chemistry/test_element.rb
         
     | 
| 
       85 
     | 
    
         
            -
            - test/chemistry/test_temperature.rb
         
     | 
| 
       86 
95 
     | 
    
         
             
            - test/test_chemistry.rb
         
     | 
| 
       87 
96 
     | 
    
         
             
            - test/test_helper.rb
         
     | 
    
        data/lib/chemistry/dsl.rb
    DELETED
    
    | 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'chemistry/element'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Chemistry::DSL
         
     | 
| 
       4 
     | 
    
         
            -
              extend self
         
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
              def element(name, &definition)
         
     | 
| 
       7 
     | 
    
         
            -
                if block_given?
         
     | 
| 
       8 
     | 
    
         
            -
                  element_class = Class.new(Chemistry::Element)
         
     | 
| 
       9 
     | 
    
         
            -
                  Chemistry::Element.const_set(name, element_class)
         
     | 
| 
       10 
     | 
    
         
            -
                  element_class.instance_eval &definition if block_given?
         
     | 
| 
       11 
     | 
    
         
            -
                else
         
     | 
| 
       12 
     | 
    
         
            -
                  raise ArgumentError, "`element` must be given a block"
         
     | 
| 
       13 
     | 
    
         
            -
                end
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
            end
         
     | 
    
        data/lib/chemistry/element.rb
    DELETED
    
    | 
         @@ -1,41 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module Chemistry
         
     | 
| 
       2 
     | 
    
         
            -
              class Element
         
     | 
| 
       3 
     | 
    
         
            -
                class << self
         
     | 
| 
       4 
     | 
    
         
            -
                  def symbol symbol
         
     | 
| 
       5 
     | 
    
         
            -
                    if symbol.is_a? String
         
     | 
| 
       6 
     | 
    
         
            -
                      const_set :SYMBOL, symbol
         
     | 
| 
       7 
     | 
    
         
            -
                    else
         
     | 
| 
       8 
     | 
    
         
            -
                      raise TypeError, "can't convert #{symbol.class} into String"
         
     | 
| 
       9 
     | 
    
         
            -
                    end
         
     | 
| 
       10 
     | 
    
         
            -
                  end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                  def atomic_number atomic_number
         
     | 
| 
       13 
     | 
    
         
            -
                    if atomic_number.is_a? Integer
         
     | 
| 
       14 
     | 
    
         
            -
                      const_set :ATOMIC_NUMBER, atomic_number
         
     | 
| 
       15 
     | 
    
         
            -
                    else
         
     | 
| 
       16 
     | 
    
         
            -
                      raise TypeError, "can't convert #{atomic_number.class} into Integer"
         
     | 
| 
       17 
     | 
    
         
            -
                    end
         
     | 
| 
       18 
     | 
    
         
            -
                  end
         
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                  def atomic_weight atomic_weight
         
     | 
| 
       21 
     | 
    
         
            -
                    if atomic_weight.is_a? Numeric
         
     | 
| 
       22 
     | 
    
         
            -
                      const_set :ATOMIC_WEIGHT, atomic_weight
         
     | 
| 
       23 
     | 
    
         
            -
                    else
         
     | 
| 
       24 
     | 
    
         
            -
                      raise TypeError, "can't convert #{atomic_weight.class} into Numeric"
         
     | 
| 
       25 
     | 
    
         
            -
                    end
         
     | 
| 
       26 
     | 
    
         
            -
                  end
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                def symbol
         
     | 
| 
       30 
     | 
    
         
            -
                  self.class::SYMBOL
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                def atomic_number
         
     | 
| 
       34 
     | 
    
         
            -
                  self.class::ATOMIC_NUMBER
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                def atomic_weight
         
     | 
| 
       38 
     | 
    
         
            -
                  self.class::ATOMIC_WEIGHT
         
     | 
| 
       39 
     | 
    
         
            -
                end
         
     | 
| 
       40 
     | 
    
         
            -
              end
         
     | 
| 
       41 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,33 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'chemistry/temperature/kelvin'
         
     | 
| 
       2 
     | 
    
         
            -
            require 'chemistry/temperature/fahrenheit'
         
     | 
| 
       3 
     | 
    
         
            -
            require 'chemistry/temperature/celsius'
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            module Chemistry
         
     | 
| 
       6 
     | 
    
         
            -
              class Temperature
         
     | 
| 
       7 
     | 
    
         
            -
                class << self
         
     | 
| 
       8 
     | 
    
         
            -
                  def kelvin(temperature)
         
     | 
| 
       9 
     | 
    
         
            -
                    Chemistry::Temperature::Kelvin.new(temperature)
         
     | 
| 
       10 
     | 
    
         
            -
                  end
         
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
                  def celsius(temperature)
         
     | 
| 
       13 
     | 
    
         
            -
                    Chemistry::Temperature::Celsius.new(temperature)
         
     | 
| 
       14 
     | 
    
         
            -
                  end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
                  def fahrenheit(temperature)
         
     | 
| 
       17 
     | 
    
         
            -
                    Chemistry::Temperature::Fahrenheit.new(temperature)
         
     | 
| 
       18 
     | 
    
         
            -
                  end
         
     | 
| 
       19 
     | 
    
         
            -
                end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                def initialize(temperature)
         
     | 
| 
       22 
     | 
    
         
            -
                  @temperature = temperature
         
     | 
| 
       23 
     | 
    
         
            -
                end
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
                def to_i
         
     | 
| 
       26 
     | 
    
         
            -
                  @temperature.to_i
         
     | 
| 
       27 
     | 
    
         
            -
                end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
                def to_f
         
     | 
| 
       30 
     | 
    
         
            -
                  @temperature.to_f
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
              end
         
     | 
| 
       33 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,27 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'chemistry/temperature'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Chemistry
         
     | 
| 
       4 
     | 
    
         
            -
              class Temperature
         
     | 
| 
       5 
     | 
    
         
            -
                class Celsius < Chemistry::Temperature
         
     | 
| 
       6 
     | 
    
         
            -
                  def to_celsius
         
     | 
| 
       7 
     | 
    
         
            -
                    self
         
     | 
| 
       8 
     | 
    
         
            -
                  end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  def to_kelvin
         
     | 
| 
       11 
     | 
    
         
            -
                    Chemistry::Temperature.kelvin convert_to_kelvin
         
     | 
| 
       12 
     | 
    
         
            -
                  end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                  def convert_to_kelvin
         
     | 
| 
       15 
     | 
    
         
            -
                    @temperature + 273.15
         
     | 
| 
       16 
     | 
    
         
            -
                  end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                  def to_fahrenheit
         
     | 
| 
       19 
     | 
    
         
            -
                    Chemistry::Temperature.fahrenheit convert_to_fahrenheit
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                  def convert_to_fahrenheit
         
     | 
| 
       23 
     | 
    
         
            -
                    (@temperature * (9.0/5.0)) + 32.0
         
     | 
| 
       24 
     | 
    
         
            -
                  end
         
     | 
| 
       25 
     | 
    
         
            -
                end
         
     | 
| 
       26 
     | 
    
         
            -
              end
         
     | 
| 
       27 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,23 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'chemistry/temperature'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Chemistry
         
     | 
| 
       4 
     | 
    
         
            -
              class Temperature
         
     | 
| 
       5 
     | 
    
         
            -
                class Fahrenheit < Chemistry::Temperature
         
     | 
| 
       6 
     | 
    
         
            -
                  def to_fahrenheit
         
     | 
| 
       7 
     | 
    
         
            -
                    self
         
     | 
| 
       8 
     | 
    
         
            -
                  end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  def to_kelvin
         
     | 
| 
       11 
     | 
    
         
            -
                    to_celsius.to_kelvin
         
     | 
| 
       12 
     | 
    
         
            -
                  end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                  def to_celsius
         
     | 
| 
       15 
     | 
    
         
            -
                    Chemistry::Temperature.celsius convert_to_celsius
         
     | 
| 
       16 
     | 
    
         
            -
                  end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                  def convert_to_celsius
         
     | 
| 
       19 
     | 
    
         
            -
                    (@temperature - 32.0) / (9.0/5.0)
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,23 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'chemistry/temperature'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            module Chemistry
         
     | 
| 
       4 
     | 
    
         
            -
              class Temperature
         
     | 
| 
       5 
     | 
    
         
            -
                class Kelvin < Chemistry::Temperature
         
     | 
| 
       6 
     | 
    
         
            -
                  def to_kelvin
         
     | 
| 
       7 
     | 
    
         
            -
                    self
         
     | 
| 
       8 
     | 
    
         
            -
                  end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
                  def to_celsius
         
     | 
| 
       11 
     | 
    
         
            -
                    Chemistry::Temperature.celsius convert_to_celsius
         
     | 
| 
       12 
     | 
    
         
            -
                  end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
                  def to_fahrenheit
         
     | 
| 
       15 
     | 
    
         
            -
                    to_celsius.to_fahrenheit
         
     | 
| 
       16 
     | 
    
         
            -
                  end
         
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                  def convert_to_celsius
         
     | 
| 
       19 
     | 
    
         
            -
                    @temperature - 273.15
         
     | 
| 
       20 
     | 
    
         
            -
                  end
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
       23 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,28 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class ToCelsiusTest < MiniTest::Unit::TestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_returns_self
         
     | 
| 
       5 
     | 
    
         
            -
                temp = Chemistry::Temperature::Celsius.new(1)
         
     | 
| 
       6 
     | 
    
         
            -
                assert_equal temp, temp.to_celsius
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            class ToKelvinTest < MiniTest::Unit::TestCase
         
     | 
| 
       11 
     | 
    
         
            -
              def test_instance_of_kelvin
         
     | 
| 
       12 
     | 
    
         
            -
                temp = Chemistry::Temperature::Celsius.new(1)
         
     | 
| 
       13 
     | 
    
         
            -
                assert temp.to_kelvin.instance_of? Chemistry::Temperature::Kelvin
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def test_difference_of_273
         
     | 
| 
       17 
     | 
    
         
            -
                base = 1
         
     | 
| 
       18 
     | 
    
         
            -
                temp = Chemistry::Temperature::Celsius.new(base)
         
     | 
| 
       19 
     | 
    
         
            -
                assert_equal (temp.to_i - temp.to_kelvin.to_i).abs, 273
         
     | 
| 
       20 
     | 
    
         
            -
              end
         
     | 
| 
       21 
     | 
    
         
            -
            end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            class ToFahrenheitTest < MiniTest::Unit::TestCase
         
     | 
| 
       24 
     | 
    
         
            -
              def test_0C_is_32F
         
     | 
| 
       25 
     | 
    
         
            -
                temp = Chemistry::Temperature::Celsius.new(0)
         
     | 
| 
       26 
     | 
    
         
            -
                assert_equal temp.to_fahrenheit.to_i, 32
         
     | 
| 
       27 
     | 
    
         
            -
              end
         
     | 
| 
       28 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,15 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class ToFahrenheitTest < MiniTest::Unit::TestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_returns_self
         
     | 
| 
       5 
     | 
    
         
            -
                temp = Chemistry::Temperature::Fahrenheit.new(1)
         
     | 
| 
       6 
     | 
    
         
            -
                assert_equal temp, temp.to_fahrenheit
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            class ToCelsiusTest < MiniTest::Unit::TestCase
         
     | 
| 
       11 
     | 
    
         
            -
              def test_32F_is_0C
         
     | 
| 
       12 
     | 
    
         
            -
                temp = Chemistry::Temperature::Fahrenheit.new(32)
         
     | 
| 
       13 
     | 
    
         
            -
                assert_equal temp.to_celsius.to_i, 0
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,28 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class ToKelvinTest < MiniTest::Unit::TestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_returns_self
         
     | 
| 
       5 
     | 
    
         
            -
                temp = Chemistry::Temperature::Kelvin.new(1)
         
     | 
| 
       6 
     | 
    
         
            -
                assert_equal temp, temp.to_kelvin
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            class ToCelsiusTest < MiniTest::Unit::TestCase
         
     | 
| 
       11 
     | 
    
         
            -
              def test_instance_of_celsius
         
     | 
| 
       12 
     | 
    
         
            -
                temp = Chemistry::Temperature::Kelvin.new(1)
         
     | 
| 
       13 
     | 
    
         
            -
                assert temp.to_celsius.instance_of? Chemistry::Temperature::Celsius
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def test_difference_of_273
         
     | 
| 
       17 
     | 
    
         
            -
                base = 1
         
     | 
| 
       18 
     | 
    
         
            -
                temp = Chemistry::Temperature::Kelvin.new(base)
         
     | 
| 
       19 
     | 
    
         
            -
                assert_equal (temp.to_i - temp.to_celsius.to_i).abs, 273
         
     | 
| 
       20 
     | 
    
         
            -
              end
         
     | 
| 
       21 
     | 
    
         
            -
            end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            class ToFahrenheitTest < MiniTest::Unit::TestCase
         
     | 
| 
       24 
     | 
    
         
            -
              def test_273_15K_is_32F
         
     | 
| 
       25 
     | 
    
         
            -
                temp = Chemistry::Temperature::Kelvin.new(273.15)
         
     | 
| 
       26 
     | 
    
         
            -
                assert_equal temp.to_fahrenheit.to_i, 32
         
     | 
| 
       27 
     | 
    
         
            -
              end
         
     | 
| 
       28 
     | 
    
         
            -
            end
         
     | 
    
        data/test/chemistry/test_dsl.rb
    DELETED
    
    | 
         @@ -1,43 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class ElementTest < MiniTest::Unit::TestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_raises_error_without_name
         
     | 
| 
       5 
     | 
    
         
            -
                assert_raises ArgumentError do
         
     | 
| 
       6 
     | 
    
         
            -
                  Chemistry::DSL.element
         
     | 
| 
       7 
     | 
    
         
            -
                end
         
     | 
| 
       8 
     | 
    
         
            -
              end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
              def test_raises_error_without_block
         
     | 
| 
       11 
     | 
    
         
            -
                assert_raises ArgumentError do
         
     | 
| 
       12 
     | 
    
         
            -
                  Chemistry::DSL.element "Hydrogen"
         
     | 
| 
       13 
     | 
    
         
            -
                end
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              def test_defines_an_element
         
     | 
| 
       17 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       18 
     | 
    
         
            -
                  Chemistry::Element::Foobar
         
     | 
| 
       19 
     | 
    
         
            -
                end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
                Chemistry::DSL.element "Foobar" do
         
     | 
| 
       22 
     | 
    
         
            -
                end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
                assert_equal Chemistry::Element <=> Chemistry::Element::Foobar, 1
         
     | 
| 
       25 
     | 
    
         
            -
              end
         
     | 
| 
       26 
     | 
    
         
            -
            end
         
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
            class DefinitionTest < MiniTest::Unit::TestCase
         
     | 
| 
       29 
     | 
    
         
            -
              include Chemistry::DSL
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
              def test_full_definition
         
     | 
| 
       32 
     | 
    
         
            -
                element "Hydrogen" do
         
     | 
| 
       33 
     | 
    
         
            -
                  symbol 'H'
         
     | 
| 
       34 
     | 
    
         
            -
                  atomic_number 1
         
     | 
| 
       35 
     | 
    
         
            -
                  atomic_weight 1.00794
         
     | 
| 
       36 
     | 
    
         
            -
                end
         
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
       38 
     | 
    
         
            -
                h_atom = Chemistry::Element::Hydrogen.new
         
     | 
| 
       39 
     | 
    
         
            -
             
     | 
| 
       40 
     | 
    
         
            -
                assert_equal h_atom.symbol, 'H'
         
     | 
| 
       41 
     | 
    
         
            -
                assert_equal h_atom.atomic_number, 1
         
     | 
| 
       42 
     | 
    
         
            -
              end
         
     | 
| 
       43 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,101 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class ClassLevelAtomicNumberTest < ElementTestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_defines_a_constant
         
     | 
| 
       5 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       6 
     | 
    
         
            -
                  element::ATOMIC_NUMBER
         
     | 
| 
       7 
     | 
    
         
            -
                end
         
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
                element.atomic_number 14
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                assert_equal element::ATOMIC_NUMBER, 14
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
              def test_must_be_an_integer
         
     | 
| 
       15 
     | 
    
         
            -
                assert_raises TypeError do
         
     | 
| 
       16 
     | 
    
         
            -
                  element.atomic_number "a"
         
     | 
| 
       17 
     | 
    
         
            -
                end
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
                assert_raises TypeError do
         
     | 
| 
       20 
     | 
    
         
            -
                  element.atomic_number 1.2
         
     | 
| 
       21 
     | 
    
         
            -
                end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
                assert element.atomic_number 12
         
     | 
| 
       24 
     | 
    
         
            -
              end
         
     | 
| 
       25 
     | 
    
         
            -
            end
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
            class InstanceLevelAtomicNumberTest < ElementTestCase
         
     | 
| 
       28 
     | 
    
         
            -
              def test_requires_atomic_number_to_be_defined_on_the_class_level
         
     | 
| 
       29 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       30 
     | 
    
         
            -
                  element.new.atomic_number
         
     | 
| 
       31 
     | 
    
         
            -
                end
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
                element.atomic_number 123
         
     | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
                assert_equal element.new.atomic_number, 123
         
     | 
| 
       36 
     | 
    
         
            -
              end
         
     | 
| 
       37 
     | 
    
         
            -
            end
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
            class ClassLevelAtomicWeightTest < ElementTestCase
         
     | 
| 
       40 
     | 
    
         
            -
              def test_defines_a_constant
         
     | 
| 
       41 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       42 
     | 
    
         
            -
                  element::ATOMIC_WEIGHT
         
     | 
| 
       43 
     | 
    
         
            -
                end
         
     | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
                element.atomic_weight 1.12342314
         
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
                assert_equal element::ATOMIC_WEIGHT, 1.12342314
         
     | 
| 
       48 
     | 
    
         
            -
              end
         
     | 
| 
       49 
     | 
    
         
            -
             
     | 
| 
       50 
     | 
    
         
            -
              def test_must_be_a_number
         
     | 
| 
       51 
     | 
    
         
            -
                assert_raises TypeError do
         
     | 
| 
       52 
     | 
    
         
            -
                  element.atomic_weight "a"
         
     | 
| 
       53 
     | 
    
         
            -
                end
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                assert element.atomic_weight 1.2
         
     | 
| 
       56 
     | 
    
         
            -
              end
         
     | 
| 
       57 
     | 
    
         
            -
            end
         
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
            class InstanceLevelAtomicWeightTest < ElementTestCase
         
     | 
| 
       60 
     | 
    
         
            -
              def test_requires_atomic_weight_to_be_defined_on_the_class_level
         
     | 
| 
       61 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       62 
     | 
    
         
            -
                  element.new.atomic_weight
         
     | 
| 
       63 
     | 
    
         
            -
                end
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                element.atomic_weight 1.12342314
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                assert_equal element.new.atomic_weight, 1.12342314
         
     | 
| 
       68 
     | 
    
         
            -
              end
         
     | 
| 
       69 
     | 
    
         
            -
            end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
            class ClassLevelSymbolTest < ElementTestCase
         
     | 
| 
       72 
     | 
    
         
            -
              def test_defines_a_constant
         
     | 
| 
       73 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       74 
     | 
    
         
            -
                  element::SYMBOL
         
     | 
| 
       75 
     | 
    
         
            -
                end
         
     | 
| 
       76 
     | 
    
         
            -
             
     | 
| 
       77 
     | 
    
         
            -
                element.symbol "H"
         
     | 
| 
       78 
     | 
    
         
            -
             
     | 
| 
       79 
     | 
    
         
            -
                assert_equal element::SYMBOL, "H"
         
     | 
| 
       80 
     | 
    
         
            -
              end
         
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
              def test_must_be_a_string_or_symbol
         
     | 
| 
       83 
     | 
    
         
            -
                assert_raises TypeError do
         
     | 
| 
       84 
     | 
    
         
            -
                  element.symbol 1
         
     | 
| 
       85 
     | 
    
         
            -
                end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                assert element.symbol 'H'
         
     | 
| 
       88 
     | 
    
         
            -
              end
         
     | 
| 
       89 
     | 
    
         
            -
            end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
            class InstanceLevelSymbolTest < ElementTestCase
         
     | 
| 
       92 
     | 
    
         
            -
              def test_requires_symbol_to_be_defined_on_the_class_level
         
     | 
| 
       93 
     | 
    
         
            -
                assert_raises NameError do
         
     | 
| 
       94 
     | 
    
         
            -
                  element.new.symbol
         
     | 
| 
       95 
     | 
    
         
            -
                end
         
     | 
| 
       96 
     | 
    
         
            -
             
     | 
| 
       97 
     | 
    
         
            -
                element.symbol 'He'
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
                assert_equal element.new.symbol, 'He'
         
     | 
| 
       100 
     | 
    
         
            -
              end
         
     | 
| 
       101 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,36 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require 'test_helper'
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            class KelvinTest < MiniTest::Unit::TestCase
         
     | 
| 
       4 
     | 
    
         
            -
              def test_returns_kelvin_wrapper
         
     | 
| 
       5 
     | 
    
         
            -
                assert Chemistry::Temperature.kelvin(1).
         
     | 
| 
       6 
     | 
    
         
            -
                  instance_of?(Chemistry::Temperature::Kelvin)
         
     | 
| 
       7 
     | 
    
         
            -
              end
         
     | 
| 
       8 
     | 
    
         
            -
            end
         
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
            class ToITest < MiniTest::Unit::TestCase
         
     | 
| 
       11 
     | 
    
         
            -
              def test_returns_temperature
         
     | 
| 
       12 
     | 
    
         
            -
                temp = 1
         
     | 
| 
       13 
     | 
    
         
            -
                assert_equal Chemistry::Temperature.new(temp).to_i, temp.to_i
         
     | 
| 
       14 
     | 
    
         
            -
              end
         
     | 
| 
       15 
     | 
    
         
            -
            end
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            class ToFTest < MiniTest::Unit::TestCase
         
     | 
| 
       18 
     | 
    
         
            -
              def test_returns_temperature
         
     | 
| 
       19 
     | 
    
         
            -
                temp = 1.0
         
     | 
| 
       20 
     | 
    
         
            -
                assert_equal Chemistry::Temperature.new(temp).to_f, temp.to_f
         
     | 
| 
       21 
     | 
    
         
            -
              end
         
     | 
| 
       22 
     | 
    
         
            -
            end
         
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
            class FahrenheitTest < MiniTest::Unit::TestCase
         
     | 
| 
       25 
     | 
    
         
            -
              def test_returns_fahrenheit_wrapper
         
     | 
| 
       26 
     | 
    
         
            -
                assert Chemistry::Temperature.fahrenheit(1).
         
     | 
| 
       27 
     | 
    
         
            -
                  instance_of?(Chemistry::Temperature::Fahrenheit)
         
     | 
| 
       28 
     | 
    
         
            -
              end
         
     | 
| 
       29 
     | 
    
         
            -
            end
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            class CelsiusTest < MiniTest::Unit::TestCase
         
     | 
| 
       32 
     | 
    
         
            -
              def test_returns_celsius_wrapper
         
     | 
| 
       33 
     | 
    
         
            -
                assert Chemistry::Temperature.celsius(1).
         
     | 
| 
       34 
     | 
    
         
            -
                  instance_of?(Chemistry::Temperature::Celsius)
         
     | 
| 
       35 
     | 
    
         
            -
              end
         
     | 
| 
       36 
     | 
    
         
            -
            end
         
     |