danica 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 696be3ea582e6da09c966a3093aa11d62a26f0f5
4
+ data.tar.gz: 07b3928209584450ad5b502087bafa160c34ac33
5
+ SHA512:
6
+ metadata.gz: 3ccbabcfd60cfc8f69ccf95ece082fdbfb998eb67b5f4d25ee466adbdd2a14b2f17c7c236a9aba891b59ada13729589ed9c605ff89426486e95ea34b90ecac8b
7
+ data.tar.gz: a5f0d985343c2c22344c0e7f9b624b0cb104819fa486900d595863cf7587a3914117ddb27ee62fb01c0af856d7e77dbc97ea125bfe542301334398de089669f9
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ coverage
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in credential_builder.gemspec
4
+ gemspec
5
+
data/Gemfile.lock ADDED
@@ -0,0 +1,64 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ danica (0.1.0)
5
+ activemodel
6
+ activesupport
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (5.0.0.1)
12
+ activesupport (= 5.0.0.1)
13
+ activesupport (5.0.0.1)
14
+ concurrent-ruby (~> 1.0, >= 1.0.2)
15
+ i18n (~> 0.7)
16
+ minitest (~> 5.1)
17
+ tzinfo (~> 1.1)
18
+ coderay (1.1.1)
19
+ concurrent-ruby (1.0.2)
20
+ diff-lcs (1.2.5)
21
+ docile (1.1.5)
22
+ i18n (0.7.0)
23
+ json (2.0.2)
24
+ method_source (0.8.2)
25
+ minitest (5.9.0)
26
+ pry (0.10.4)
27
+ coderay (~> 1.1.0)
28
+ method_source (~> 0.8.1)
29
+ slop (~> 3.4)
30
+ pry-nav (0.2.4)
31
+ pry (>= 0.9.10, < 0.11.0)
32
+ rake (11.2.2)
33
+ rspec (2.99.0)
34
+ rspec-core (~> 2.99.0)
35
+ rspec-expectations (~> 2.99.0)
36
+ rspec-mocks (~> 2.99.0)
37
+ rspec-core (2.99.2)
38
+ rspec-expectations (2.99.2)
39
+ diff-lcs (>= 1.1.3, < 2.0)
40
+ rspec-mocks (2.99.4)
41
+ simplecov (0.12.0)
42
+ docile (~> 1.1.0)
43
+ json (>= 1.8, < 3)
44
+ simplecov-html (~> 0.10.0)
45
+ simplecov-html (0.10.0)
46
+ slop (3.6.0)
47
+ thread_safe (0.3.5)
48
+ tzinfo (1.2.2)
49
+ thread_safe (~> 0.1)
50
+
51
+ PLATFORMS
52
+ ruby
53
+
54
+ DEPENDENCIES
55
+ bundler (~> 1.6)
56
+ danica!
57
+ pry-nav
58
+ rake
59
+ rspec (~> 2.14)
60
+ rspec-mocks
61
+ simplecov
62
+
63
+ BUNDLED WITH
64
+ 1.12.5
data/README.md ADDED
@@ -0,0 +1,68 @@
1
+ # danica
2
+ A tool for math formulation on docs
3
+
4
+ ## How to use
5
+ Add the gem to your project or just install the gem
6
+
7
+ ```
8
+ gem 'danica'
9
+ ```
10
+
11
+ ```console
12
+ bundle install danica
13
+ ```
14
+
15
+ Now you can use in your project
16
+
17
+
18
+ ```ruby
19
+ class MyFunction < Danica::Function
20
+ def to_f
21
+ #implement to float method
22
+ end
23
+
24
+ def to_tex
25
+ #implement to tex method
26
+ end
27
+ end
28
+ ```
29
+
30
+
31
+ ### Sample
32
+
33
+ ```ruby
34
+ class Danica::Function
35
+ class Spatial < Danica::Function
36
+ attr_accessor :time, :acceleration, :initial_space, :initial_velocity
37
+ delegate :to_tex, to: :sum
38
+
39
+ private
40
+
41
+ def sum
42
+ @sum ||= Sum.new(variables: parcels)
43
+ end
44
+
45
+ def parcels
46
+ [
47
+ initial_space,
48
+ spatial_velocity,
49
+ spatial_acceleration
50
+ ]
51
+ end
52
+
53
+ def spatial_velocity
54
+ Product.new(variables: [ initial_velocity, time ])
55
+ end
56
+
57
+ def spatial_acceleration
58
+ Division.new(numerator: Product.new(variables: [ acceleration, time, time ]), denominator: 2)
59
+ end
60
+ end
61
+ end
62
+ ```
63
+
64
+ returns
65
+ ```string
66
+ S_0 + V_0 \cdot t + \frac{a \cdot t \cdot t}{2}
67
+ ```
68
+
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task default: :spec
7
+ task test: :spec
data/danica.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'danica/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'danica'
8
+ spec.version = Danica::VERSION
9
+ spec.authors = ['Darthjee']
10
+ spec.email = ['darthjee@gmail.com']
11
+ spec.summary = 'Danica'
12
+
13
+ spec.files = `git ls-files -z`.split("\x0")
14
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
15
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
+ spec.require_paths = ['lib']
17
+
18
+ spec.add_runtime_dependency 'activesupport'
19
+ spec.add_runtime_dependency 'activemodel'
20
+
21
+ spec.add_development_dependency 'bundler', '~> 1.6'
22
+ spec.add_development_dependency 'rake'
23
+ spec.add_development_dependency 'rspec', '~> 2.14'
24
+ spec.add_development_dependency 'rspec-mocks'
25
+ spec.add_development_dependency 'pry-nav'
26
+ spec.add_development_dependency 'simplecov'
27
+
28
+ end
data/lib/danica.rb ADDED
@@ -0,0 +1,9 @@
1
+ require 'active_model'
2
+
3
+ module Danica
4
+ require 'danica/number'
5
+ require 'danica/variable'
6
+ require 'danica/function'
7
+ require 'danica/not_defined'
8
+ end
9
+
@@ -0,0 +1,34 @@
1
+ class Danica::Function
2
+ include ActiveModel::Model
3
+
4
+ require 'danica/function/chained'
5
+ require 'danica/function/product'
6
+ require 'danica/function/sum'
7
+ require 'danica/function/division'
8
+
9
+ attr_accessor :name, :variables
10
+
11
+ def to_f
12
+ raise 'Not IMplemented yet'
13
+ end
14
+
15
+ def to_tex
16
+ raise 'Not IMplemented yet'
17
+ end
18
+
19
+ def variables=(variables)
20
+ @variables = variables.map { |v| wrap_value(v) }
21
+ end
22
+
23
+ def valued?
24
+ to_f.presend?
25
+ rescue Danica::NotDefined
26
+ false
27
+ end
28
+
29
+ private
30
+
31
+ def wrap_value(value)
32
+ value.is_a?(Numeric) ? Danica::Number.new(value) : value
33
+ end
34
+ end
@@ -0,0 +1,35 @@
1
+ module Danica
2
+ class Function
3
+ class Chained < Function
4
+ def to_f
5
+ chain(variables.map(&:to_f))
6
+ end
7
+
8
+ def to_tex
9
+ (numeric_to_tex + non_numeric_variables.map(&:to_tex)).join(" #{tex_symbol} ")
10
+ end
11
+
12
+ private
13
+
14
+ def numeric_variables
15
+ variables.select { |v| v.valued? }
16
+ end
17
+
18
+ def non_numeric_variables
19
+ variables.reject { |v| v.valued? }
20
+ end
21
+
22
+ def chain(numbers)
23
+ numbers.inject do |a,b|
24
+ chain_operation(a,b)
25
+ end.to_f
26
+ end
27
+
28
+ def numeric_to_tex
29
+ return [] if numeric_variables.empty?
30
+ [ Number.new(chain(numeric_variables.map(&:to_f))).to_tex ]
31
+ end
32
+ end
33
+ end
34
+ end
35
+
@@ -0,0 +1,24 @@
1
+ module Danica
2
+ class Function
3
+ class Division < Function
4
+ attr_accessor :numerator, :denominator
5
+
6
+ def to_f
7
+ numerator.to_f / denominator.to_f
8
+ end
9
+
10
+ def to_tex
11
+ "\\frac{#{numerator.to_tex}}{#{denominator.to_tex}}"
12
+ end
13
+
14
+ def numerator=(value)
15
+ @numerator ||= wrap_value(value)
16
+ end
17
+
18
+ def denominator=(value)
19
+ @denominator ||= wrap_value(value)
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -0,0 +1,15 @@
1
+ module Danica
2
+ class Function
3
+ class Product < Chained
4
+ private
5
+
6
+ def tex_symbol
7
+ '\cdot'
8
+ end
9
+
10
+ def chain_operation(a, b)
11
+ a * b
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ module Danica
2
+ class Function
3
+ class Sum < Chained
4
+ private
5
+
6
+ def tex_symbol
7
+ '+'
8
+ end
9
+
10
+ def chain_operation(a, b)
11
+ a + b
12
+ end
13
+ end
14
+ end
15
+ end
16
+
@@ -0,0 +1,2 @@
1
+ class Danica::NotDefined < Exception
2
+ end
@@ -0,0 +1,24 @@
1
+ module Danica
2
+ class Number
3
+ include ActiveModel::Model
4
+
5
+ attr_accessor :value
6
+
7
+ delegate :to_f, to: :value
8
+
9
+ def initialize(value)
10
+ @value = value
11
+ end
12
+
13
+ def to_tex
14
+ return value.to_i if value.to_i == value
15
+ value
16
+ end
17
+
18
+ def valued?
19
+ value.present?
20
+ end
21
+ end
22
+ end
23
+
24
+
@@ -0,0 +1,19 @@
1
+ module Danica
2
+ class Variable
3
+ include ActiveModel::Model
4
+ attr_accessor :value, :name, :latex
5
+
6
+ def to_f
7
+ value.nil? ? raise(NotDefined) : value.to_f
8
+ end
9
+
10
+ def to_tex
11
+ (value || latex || name).to_s
12
+ end
13
+
14
+ def valued?
15
+ value.present?
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,3 @@
1
+ module Danica
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,94 @@
1
+ require 'spec_helper'
2
+
3
+ describe Danica::Function::Division do
4
+ let(:variables_number) { 4 }
5
+ let(:values) { [ 2, 4 ] }
6
+ let(:variables) do
7
+ [ 1, 2 ].map do |i|
8
+ Danica::Variable.new(name: "X#{i}", value: values[i-1])
9
+ end
10
+ end
11
+ let(:subject) do
12
+ described_class.new(numerator: variables[0], denominator: variables[1])
13
+ end
14
+
15
+ describe 'to_f' do
16
+ context 'when variables are not numbers but have value' do
17
+ it 'returns the division of the values' do
18
+ expect(subject.to_f).to eq(1.0 / 2.0)
19
+ end
20
+
21
+ it do
22
+ expect(subject.to_f).to be_a(Float)
23
+ end
24
+ end
25
+
26
+ context 'when all the variables are numbers' do
27
+ let(:variables) { [ 2, 4 ] }
28
+
29
+ it 'returns the division of the values' do
30
+ expect(subject.to_f).to eq(1.0 / 2.0)
31
+ end
32
+
33
+ it do
34
+ expect(subject.to_f).to be_a(Float)
35
+ end
36
+ end
37
+
38
+ context 'when one the variables are numbers' do
39
+ before do
40
+ variables[0] = 2
41
+ end
42
+
43
+ it 'returns the division of the values' do
44
+ expect(subject.to_f).to eq(1.0 / 2.0)
45
+ end
46
+
47
+ it do
48
+ expect(subject.to_f).to be_a(Float)
49
+ end
50
+ end
51
+ end
52
+
53
+ describe 'to_tex' do
54
+ context 'when variables have no value' do
55
+ let(:variables) do
56
+ [ 1,2 ].map do |i|
57
+ Danica::Variable.new(name: "X#{i}")
58
+ end
59
+ end
60
+
61
+ it 'returns a latex format fraction' do
62
+ expect(subject.to_tex).to eq('\frac{X1}{X2}')
63
+ end
64
+ end
65
+
66
+ context 'when one of the variables has value' do
67
+ before do
68
+ variables[1].value = nil
69
+ end
70
+
71
+ it 'returns the number instead of the value' do
72
+ expect(subject.to_tex).to eq('\frac{2}{X2}')
73
+ end
74
+ end
75
+
76
+ context 'when both variables are numeric' do
77
+ it 'prints both numbers' do
78
+ expect(subject.to_tex).to eq('\frac{2}{4}')
79
+ end
80
+ end
81
+
82
+ context 'when one of the variables is a number' do
83
+ before do
84
+ variables[1].value = nil
85
+ variables[0] = 1
86
+ end
87
+
88
+ it 'prints both numbers' do
89
+ expect(subject.to_tex).to eq('\frac{1}{X2}')
90
+ end
91
+ end
92
+ end
93
+ end
94
+
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Danica::Function::Product do
4
+ it_behaves_like 'a function that joins many variables with same operation', {
5
+ calculated: 24,
6
+ tex_expected: %w(X1 X2 X3 X4).join(' \cdot '),
7
+ tex_integer_expected: %w(3 X3 X4).join(' \cdot '),
8
+ tex_float_expected: '10.5 \cdot X4',
9
+ numeric_variables: [ 1.5, 2, 3.5 ]
10
+ }
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe Danica::Function::Sum do
4
+ it_behaves_like 'a function that joins many variables with same operation', {
5
+ calculated: 10,
6
+ tex_expected: 'X1 + X2 + X3 + X4',
7
+ tex_integer_expected: '4 + X3 + X4',
8
+ tex_float_expected: '7.5 + X4',
9
+ numeric_variables: [ 1.5, 2.5, 3.5 ]
10
+ }
11
+ end
@@ -0,0 +1,52 @@
1
+ require 'spec_helper'
2
+
3
+ describe Danica::Function do
4
+ class Danica::Function
5
+ class Spatial < Danica::Function
6
+ attr_accessor :time, :acceleration, :initial_space, :initial_velocity
7
+ delegate :to_tex, to: :sum
8
+
9
+ private
10
+
11
+ def sum
12
+ @sum ||= Sum.new(variables: parcels)
13
+ end
14
+
15
+ def parcels
16
+ [
17
+ initial_space,
18
+ spatial_velocity,
19
+ spatial_acceleration
20
+ ]
21
+ end
22
+
23
+ def spatial_velocity
24
+ Product.new(variables: [ initial_velocity, time ])
25
+ end
26
+
27
+ def spatial_acceleration
28
+ Division.new(numerator: Product.new(variables: [ acceleration, time, time ]), denominator: 2)
29
+ end
30
+ end
31
+ end
32
+
33
+ describe '#to_tex' do
34
+ context 'when creating the spatial function for constantly accelerated movement' do
35
+ let(:variables) do
36
+ {
37
+ time: Danica::Variable.new(name: :t),
38
+ acceleration: Danica::Variable.new(name: :a),
39
+ initial_space: Danica::Variable.new(name: :S0, latex: 'S_0'),
40
+ initial_velocity: Danica::Variable.new(name: :V0, latex: 'V_0')
41
+ }
42
+ end
43
+
44
+ let(:subject) { described_class::Spatial.new(variables) }
45
+ let(:expected) { 'S_0 + V_0 \cdot t + \frac{a \cdot t \cdot t}{2}' }
46
+
47
+ it 'return the latex format CAM' do
48
+ expect(subject.to_tex).to eq(expected)
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Danica::Variable do
4
+ describe 'to_f' do
5
+ context 'when variable has no value' do
6
+ it { expect { subject.to_f }.to raise_error(Danica::NotDefined) }
7
+ end
8
+
9
+ context 'when variable has value' do
10
+ let(:value) { 100 }
11
+ let(:subject) { described_class.new(value: value) }
12
+
13
+ it { expect(subject.to_f).to eq(value) }
14
+ end
15
+ end
16
+
17
+ describe 'to_tex' do
18
+ let(:name) { :delta }
19
+
20
+ context 'when latex is not defined ' do
21
+ let(:subject) { described_class.new name: name }
22
+
23
+ it 'returns name' do
24
+ expect(subject.to_tex).to eq('delta')
25
+ end
26
+ end
27
+
28
+ context 'when latex has been defined' do
29
+ let(:subject) { described_class.new name: name, latex: '\delta' }
30
+
31
+ it 'returns latex' do
32
+ expect(subject.to_tex).to eq('\delta')
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,32 @@
1
+ require 'simplecov'
2
+
3
+ SimpleCov.profiles.define 'gem' do
4
+ add_filter '/spec/'
5
+ end
6
+
7
+ SimpleCov.start 'gem'
8
+ require 'pry-nav'
9
+ require 'danica'
10
+
11
+ # This file was generated by the `rspec --init` command. Conventionally, all
12
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
13
+ # Require this file using `require "spec_helper"` to ensure that it is only
14
+ # loaded once.
15
+ #
16
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
17
+
18
+ # Requires supporting ruby files with custom matchers and macros, etc,
19
+ # in spec/support/ and its subdirectories.
20
+ Dir['./spec/support/**/*.rb'].each { |f| require f }
21
+
22
+ RSpec.configure do |config|
23
+ config.treat_symbols_as_metadata_keys_with_true_values = true
24
+ config.run_all_when_everything_filtered = true
25
+ config.filter_run :focus
26
+
27
+ # Run specs in random order to surface order dependencies. If you find an
28
+ # order dependency and want to debug it, you can fix the order by providing
29
+ # the seed, which is printed after each run.
30
+ # --seed 1234
31
+ config.order = 'random'
32
+ end
@@ -0,0 +1,106 @@
1
+ shared_examples 'a function that joins many variables with same operation' do |arguments|
2
+ it_behaves_like 'a function that knows how to calculate', arguments
3
+ it_behaves_like 'a function that knows how to write to tex', arguments
4
+ end
5
+
6
+ shared_examples 'a function that knows how to calculate' do |arguments|
7
+ %w(calculated).each do |key|
8
+ let(key) { arguments[key.to_sym] }
9
+ end
10
+ let(:variables) do
11
+ (1..4).map do |i|
12
+ Danica::Variable.new(name: "X#{i}", value: numeric_variables[i-1])
13
+ end
14
+ end
15
+ let(:numeric_variables){ (1..4).to_a }
16
+ let(:subject) do
17
+ described_class.new(variables: variables)
18
+ end
19
+
20
+ describe 'to_f' do
21
+ it 'returns the sum of variables value' do
22
+ expect(subject.to_f).to eq(calculated)
23
+ end
24
+
25
+ it do
26
+ expect(subject.to_f).to be_a(Float)
27
+ end
28
+
29
+ context 'when one variable is a number' do
30
+ let(:variables) { (1..4) }
31
+
32
+ it do
33
+ expect(subject.to_f).to eq(calculated)
34
+ end
35
+
36
+ it do
37
+ expect(subject.to_f).to be_a(Float)
38
+ end
39
+ end
40
+ end
41
+ end
42
+
43
+ shared_examples 'a function that knows how to write to tex' do |arguments|
44
+ %w(numeric_variables tex_integer_expected tex_expected tex_float_expected).each do |key|
45
+ let(key) { arguments[key.to_sym] }
46
+ end
47
+ let(:subject) do
48
+ described_class.new(variables: variables)
49
+ end
50
+
51
+ describe 'to_tex' do
52
+ let(:variables) do
53
+ (1..4).map do |i|
54
+ Danica::Variable.new(name: "X#{i}")
55
+ end
56
+ end
57
+
58
+ context 'when variables have no value' do
59
+ it 'outputs a latex format' do
60
+ expect(subject.to_tex).to eq(tex_expected)
61
+ end
62
+ end
63
+
64
+ context 'when some variables have values' do
65
+ let(:numeric_variables_index) { 1 }
66
+ before do
67
+ (0..numeric_variables_index).each do |i|
68
+ variables[i].value = numeric_variables[i]
69
+ end
70
+ end
71
+
72
+ it 'outputs a latex format with colapsed numbers' do
73
+ expect(subject.to_tex).to eq(tex_integer_expected)
74
+ end
75
+
76
+ context 'when numeric variables sum is a float value' do
77
+ let(:numeric_variables_index) { 2 }
78
+
79
+ it 'outputs a latex format with colapsed numbers' do
80
+ expect(subject.to_tex).to eq(tex_float_expected)
81
+ end
82
+ end
83
+ end
84
+
85
+ context 'when some variables are numbers' do
86
+ let(:numeric_variables_index) { 1 }
87
+ before do
88
+ (0..numeric_variables_index).each do |i|
89
+ variables[i] = numeric_variables[i]
90
+ end
91
+ end
92
+
93
+ it 'outputs a latex format with colapsed numbers' do
94
+ expect(subject.to_tex).to eq(tex_integer_expected)
95
+ end
96
+
97
+ context 'when numeric variables sum is a float value' do
98
+ let(:numeric_variables_index) { 2 }
99
+
100
+ it 'outputs a latex format with colapsed numbers' do
101
+ expect(subject.to_tex).to eq(tex_float_expected)
102
+ end
103
+ end
104
+ end
105
+ end
106
+ end
metadata ADDED
@@ -0,0 +1,186 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: danica
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Darthjee
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-08-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activesupport
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activemodel
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.14'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.14'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec-mocks
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-nav
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: simplecov
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ description:
126
+ email:
127
+ - darthjee@gmail.com
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - ".gitignore"
133
+ - ".rspec"
134
+ - Gemfile
135
+ - Gemfile.lock
136
+ - README.md
137
+ - Rakefile
138
+ - danica.gemspec
139
+ - lib/danica.rb
140
+ - lib/danica/function.rb
141
+ - lib/danica/function/chained.rb
142
+ - lib/danica/function/division.rb
143
+ - lib/danica/function/product.rb
144
+ - lib/danica/function/sum.rb
145
+ - lib/danica/not_defined.rb
146
+ - lib/danica/number.rb
147
+ - lib/danica/variable.rb
148
+ - lib/danica/version.rb
149
+ - spec/lib/danica/function/division_spec.rb
150
+ - spec/lib/danica/function/product_spec.rb
151
+ - spec/lib/danica/function/sum_spec.rb
152
+ - spec/lib/danica/function_spec.rb
153
+ - spec/lib/danica/variable_spec.rb
154
+ - spec/spec_helper.rb
155
+ - spec/support/shared_examples/function.rb
156
+ homepage:
157
+ licenses: []
158
+ metadata: {}
159
+ post_install_message:
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: '0'
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubyforge_project:
175
+ rubygems_version: 2.5.1
176
+ signing_key:
177
+ specification_version: 4
178
+ summary: Danica
179
+ test_files:
180
+ - spec/lib/danica/function/division_spec.rb
181
+ - spec/lib/danica/function/product_spec.rb
182
+ - spec/lib/danica/function/sum_spec.rb
183
+ - spec/lib/danica/function_spec.rb
184
+ - spec/lib/danica/variable_spec.rb
185
+ - spec/spec_helper.rb
186
+ - spec/support/shared_examples/function.rb