data_structures_101 0.2.7 → 0.2.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9da1e1c439afbfee405a03d8a20ee10801f2ad21
4
- data.tar.gz: f23f1dd42d7bf0101857de009811880c143f76a5
3
+ metadata.gz: 071cc0976048ad1ac482c61b6a9bc8637554a4f2
4
+ data.tar.gz: e5b633259d5020b173233f9e2c7e22c84c838578
5
5
  SHA512:
6
- metadata.gz: 866abc6a74bce5ba8f9c53f207c79f51b8d25588e753b5592ca5d1c0c749e2836ae20a70cc2f04307fa8aeaa0cfe03778de2468db949f102f39e6c20f578753e
7
- data.tar.gz: 8e204a45a38b935ee32b43ca4da0586788ab4166666594522e252cb847030c9e0164fb4252a6f846248837181dfa0974eeeb2b5992dd6dd2ba8a00838873a8ea
6
+ metadata.gz: 4414e18d3bfaadc05ed8fc04a71cb4cc842b6e4b6f5a2af8277b0fe805b9a223f3b34db98ea8819ca50dade2055d14fd53d045ce925b4116e262a56aa4b30ca0
7
+ data.tar.gz: 0c7c6ef96858084ae3e034c0e83863fa53c76d306effcfe9ac6bf75f63b8882d38749587354711e7833da784e9d33a98bb6d06a3e662e9d373a421176041c13a
data/.codeclimate.yml ADDED
@@ -0,0 +1,11 @@
1
+ engines:
2
+ rubocop:
3
+ enabled: true
4
+ exclude_paths:
5
+ - "*.gemspec"
6
+ - "*.md"
7
+ - Rakefile
8
+ - Gemfile
9
+ - docs/**/*
10
+ - task/**/*
11
+ - coverage/**/*
data/.gitignore CHANGED
@@ -24,3 +24,11 @@
24
24
 
25
25
  # Gem files
26
26
  *.gem
27
+
28
+ # yard docs
29
+ docs/generated/
30
+
31
+ # Jekyll
32
+ _site
33
+ .sass-cache
34
+ .jekyll-metadata
data/.rubocop.yml CHANGED
@@ -1,4 +1,7 @@
1
1
  AllCops:
2
+ Exclude:
3
+ - bin/**/*
4
+ - tasks/**/*
2
5
  TargetRubyVersion: 2.4
3
6
  Metrics/MethodLength:
4
7
  Max: 30
@@ -6,14 +9,17 @@ Metrics/MethodLength:
6
9
  Metrics/AbcSize:
7
10
  Exclude:
8
11
  - spec/**/*
12
+ - perf/**/*
9
13
  Max: 20
10
14
  Metrics/CyclomaticComplexity:
11
15
  Max: 10
12
16
  Metrics/BlockLength:
13
17
  Exclude:
14
18
  - spec/**/*
19
+ - perf/**/*
15
20
  Metrics/LineLength:
16
21
  Exclude:
17
22
  - spec/**/*
23
+ - perf/**/*
18
24
  Style/FrozenStringLiteralComment:
19
25
  EnforcedStyle: always
data/.travis.yml CHANGED
@@ -1,28 +1,40 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.0
4
+ - 2.4.2
5
5
  env:
6
6
  global:
7
- - CI: true
8
- script:
9
- - bundle exec rspec
10
- - bundle exec rubocop lib
11
- - bundle exec rubocop spec
12
- before_deploy: bundle exec yard doc
7
+ - CI=true
8
+ - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
9
+ before_script:
10
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
11
+ - chmod +x ./cc-test-reporter
12
+ - "./cc-test-reporter before-build"
13
+ script:
14
+ - bundle exec rspec
15
+ after_script:
16
+ - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
17
+ before_deploy:
18
+ - "cat ./README.md >> ./docs/index.md"
13
19
  deploy:
14
- - provider: pages
15
- skip_cleanup: true
16
- github_token: $GITHUB_TOKEN
17
- local_dir: .
18
- target_branch: gh-pages
19
- on:
20
- branch: master
21
- - provider: rubygems
22
- api_key:
23
- secure: YDkCNjnzyBTEcZLjKqt6ep1rIHYGF6tbqwNVUXEOFiBpQA534xl8AcsNIcb4MZGcNzn9ZeJiHstIeHKKP135sLKnA00RptoVtNAHn9F5hBgDyPc5GyIEzml4wDv7NM+jcM4df39CEBIyYi+77vRUvUfrOJ+0RF7CxvlGX4ZUvbI+5edFXjt9ioVPOhG+V6FyTbGlNEG2Rj4lx6jjUF3HYVVhwHCva3F4uXNh/3CjZXvcJ6ZahKCiO0/pqxZsS6L/xfDaih/jg/8B3nQ2L7Lx+g5A8uNLCZ4u2G4SPoCg0a+mrttJAkIgTNC8reVBAbS9V7BV6/OJcJwwhJKNQ+UsleTv0oDdOWsSFgL8I2qtUJb7r1cpmFHi/LC5fnfpfC6xcoRk7sxrFboYsbm8yGt2KEk68Jregl9j0EqrHynog/9zFKx9Sfcrw2Fo+6oMACDYm3NzlcAo+6bQHni/kV94oaD58nZ3OQgvBMh4jeZ854jjCbpJaCMs2u2CgezjlTZCY7+E38t+/tiFlAOakVBSC9oGEYCFxh5X/clKXi7Q2PZj8j/pmcc51wmVFEMB5Led7kj1R1YWCnalhIZO4hpz83yBGCYZQgm2AZy0r8k741L9ab0H/KhMSJHGN2ym2Dgdpg1a0QdlMGVidIQGNjeSEx7TPkkDStuM588qKcR8C6M=
24
- gem: data_structures_101
25
- on:
26
- tags: true
27
- repo: renehernandez/data_structures_101
28
- branch: master
20
+ - provider: pages
21
+ skip_cleanup: true
22
+ github_token: "$GITHUB_TOKEN"
23
+ local_dir: "./docs"
24
+ target_branch: gh-pages
25
+ on:
26
+ branch:
27
+ - develop
28
+ - master
29
+ - provider: rubygems
30
+ api_key:
31
+ secure: YDkCNjnzyBTEcZLjKqt6ep1rIHYGF6tbqwNVUXEOFiBpQA534xl8AcsNIcb4MZGcNzn9ZeJiHstIeHKKP135sLKnA00RptoVtNAHn9F5hBgDyPc5GyIEzml4wDv7NM+jcM4df39CEBIyYi+77vRUvUfrOJ+0RF7CxvlGX4ZUvbI+5edFXjt9ioVPOhG+V6FyTbGlNEG2Rj4lx6jjUF3HYVVhwHCva3F4uXNh/3CjZXvcJ6ZahKCiO0/pqxZsS6L/xfDaih/jg/8B3nQ2L7Lx+g5A8uNLCZ4u2G4SPoCg0a+mrttJAkIgTNC8reVBAbS9V7BV6/OJcJwwhJKNQ+UsleTv0oDdOWsSFgL8I2qtUJb7r1cpmFHi/LC5fnfpfC6xcoRk7sxrFboYsbm8yGt2KEk68Jregl9j0EqrHynog/9zFKx9Sfcrw2Fo+6oMACDYm3NzlcAo+6bQHni/kV94oaD58nZ3OQgvBMh4jeZ854jjCbpJaCMs2u2CgezjlTZCY7+E38t+/tiFlAOakVBSC9oGEYCFxh5X/clKXi7Q2PZj8j/pmcc51wmVFEMB5Led7kj1R1YWCnalhIZO4hpz83yBGCYZQgm2AZy0r8k741L9ab0H/KhMSJHGN2ym2Dgdpg1a0QdlMGVidIQGNjeSEx7TPkkDStuM588qKcR8C6M=
32
+ gem: data_structures_101
33
+ on:
34
+ tags: true
35
+ repo: renehernandez/data_structures_101
36
+ branch: master
37
+ addons:
38
+ code_climate:
39
+ repo_token:
40
+ secure: RniybQE1wb0iDFzqH31Y3oUZ11xwrvtpnKwahLPB44pdR9ocpEmHG1I7IBO5pkJscHbKAL7lUJwoshgSV9cRx15CYNglzB
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in data_structures_101.gemspec
4
- gemspec
4
+ gemspec
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # DataStructures101 [![Build Status](https://travis-ci.org/renehernandez/data_structures_101.svg)](https://travis-ci.org/renehernandez/data_structures_101) [![Gem Version](https://badge.fury.io/rb/data_structures_101.svg)](https://badge.fury.io/rb/data_structures_101)
1
+ # DataStructures101 [![Build Status](https://travis-ci.org/renehernandez/data_structures_101.svg)](https://travis-ci.org/renehernandez/data_structures_101) [![Gem Version](https://badge.fury.io/rb/data_structures_101.svg)](https://badge.fury.io/rb/data_structures_101) [![Code Climate](https://codeclimate.com/github/codeclimate/codeclimate/badges/gpa.svg)](https://codeclimate.com/github/codeclimate/codeclimate) [![Test Coverage](https://codeclimate.com/github/codeclimate/codeclimate/badges/coverage.svg)](https://codeclimate.com/github/codeclimate/codeclimate/coverage)
2
2
 
3
- DataStructures101 is a simple gem that groups several implementations of common data structures usually taught in Computer Science courses. The overall goal of the gem is to provide easy to use functionality (trying to match the behavior of existent structures in Ruby) while providing the user with a framework to test and compare their implementations against.
3
+ DataStructures101 is a simple gem that groups several implementations of common data structures usually taught in Computer Science courses. The overall goal of the gem is to provide easy to use functionality (trying to match the behavior of existing structures in Ruby) while providing the user with a framework to test and compare their implementations against.
4
4
 
5
5
  ## Installation
6
6
 
@@ -42,7 +42,9 @@ hash = DataStructures101::ChainedHashTable.new
42
42
 
43
43
  ### Documentation
44
44
 
45
- The website documentation lives at the [github pages](https://renehernandez.github.io/data_structures_101/). You can also chec several posts on [https://bitsofknowledge.net](https://bitsofknowledge.net) where I have discusses some implementations.
45
+ The documentation lives at the [github pages](https://renehernandez.github.io/data_structures_101/). For the nitty gritty details of the implementation go to [http://www.rubydoc.info/gems/data_structures_101](http://www.rubydoc.info/gems/data_structures_101).
46
+
47
+ You can also go through several posts on [https://bitsofknowledge.net](https://bitsofknowledge.net/tag/data-structures/) where I have discussed the implementations.
46
48
 
47
49
  ## Contributing
48
50
 
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.license = "MIT"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
- f.match(%r{^(test|spec|features|doc|tasks)/})
17
+ f.match(%r{^(test|spec|features|doc|tasks|perf)/})
18
18
  end
19
19
  spec.bindir = "exe"
20
20
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
@@ -23,11 +23,11 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "bundler", "~> 1.14"
24
24
  spec.add_development_dependency "rake", "~> 10.0"
25
25
  spec.add_development_dependency "rspec", "~> 3.5"
26
- spec.add_development_dependency "reek", "~> 4.7"
27
26
  spec.add_development_dependency "rubocop", "~> 0.49"
28
27
  spec.add_development_dependency "yard", "~> 0.9"
29
28
  spec.add_development_dependency "redcarpet", "~> 3.4"
30
29
  spec.add_development_dependency "github-markup", "~> 1.6"
30
+ spec.add_development_dependency "simplecov", "~> 0.15"
31
31
  unless ENV['CI']
32
32
  spec.add_development_dependency "benchmark-ips", "~> 2.7"
33
33
  spec.add_development_dependency "gruff", "~> 0.7"
data/docs/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ _site
2
+ .sass-cache
3
+ .jekyll-metadata
data/docs/404.html ADDED
@@ -0,0 +1,24 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <style type="text/css" media="screen">
6
+ .container {
7
+ margin: 10px auto;
8
+ max-width: 600px;
9
+ text-align: center;
10
+ }
11
+ h1 {
12
+ margin: 30px 0;
13
+ font-size: 4em;
14
+ line-height: 1;
15
+ letter-spacing: -1px;
16
+ }
17
+ </style>
18
+
19
+ <div class="container">
20
+ <h1>404</h1>
21
+
22
+ <p><strong>Page not found :(</strong></p>
23
+ <p>The requested page could not be found.</p>
24
+ </div>
data/docs/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source "https://rubygems.org"
2
+
3
+ # If you want to use GitHub Pages, remove the "gem "jekyll"" above and
4
+ # uncomment the line below. To upgrade, run `bundle update github-pages`.
5
+ gem "github-pages", group: :jekyll_plugins
6
+
7
+ # If you have any plugins, put them here!
8
+ group :jekyll_plugins do
9
+ gem "jekyll-feed", "~> 0.6"
10
+ end
11
+
data/docs/Gemfile.lock ADDED
@@ -0,0 +1,219 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ activesupport (4.2.8)
5
+ i18n (~> 0.7)
6
+ minitest (~> 5.1)
7
+ thread_safe (~> 0.3, >= 0.3.4)
8
+ tzinfo (~> 1.1)
9
+ addressable (2.5.2)
10
+ public_suffix (>= 2.0.2, < 4.0)
11
+ coffee-script (2.4.1)
12
+ coffee-script-source
13
+ execjs
14
+ coffee-script-source (1.11.1)
15
+ colorator (1.1.0)
16
+ ethon (0.10.1)
17
+ ffi (>= 1.3.0)
18
+ execjs (2.7.0)
19
+ faraday (0.13.1)
20
+ multipart-post (>= 1.2, < 3)
21
+ ffi (1.9.18)
22
+ forwardable-extended (2.6.0)
23
+ gemoji (3.0.0)
24
+ github-pages (161)
25
+ activesupport (= 4.2.8)
26
+ github-pages-health-check (= 1.3.5)
27
+ jekyll (= 3.5.2)
28
+ jekyll-avatar (= 0.5.0)
29
+ jekyll-coffeescript (= 1.0.2)
30
+ jekyll-default-layout (= 0.1.4)
31
+ jekyll-feed (= 0.9.2)
32
+ jekyll-gist (= 1.4.1)
33
+ jekyll-github-metadata (= 2.9.3)
34
+ jekyll-mentions (= 1.2.0)
35
+ jekyll-optional-front-matter (= 0.2.0)
36
+ jekyll-paginate (= 1.1.0)
37
+ jekyll-readme-index (= 0.1.0)
38
+ jekyll-redirect-from (= 0.12.1)
39
+ jekyll-relative-links (= 0.4.1)
40
+ jekyll-sass-converter (= 1.5.0)
41
+ jekyll-seo-tag (= 2.3.0)
42
+ jekyll-sitemap (= 1.1.1)
43
+ jekyll-swiss (= 0.4.0)
44
+ jekyll-theme-architect (= 0.1.0)
45
+ jekyll-theme-cayman (= 0.1.0)
46
+ jekyll-theme-dinky (= 0.1.0)
47
+ jekyll-theme-hacker (= 0.1.0)
48
+ jekyll-theme-leap-day (= 0.1.0)
49
+ jekyll-theme-merlot (= 0.1.0)
50
+ jekyll-theme-midnight (= 0.1.0)
51
+ jekyll-theme-minimal (= 0.1.0)
52
+ jekyll-theme-modernist (= 0.1.0)
53
+ jekyll-theme-primer (= 0.5.2)
54
+ jekyll-theme-slate (= 0.1.0)
55
+ jekyll-theme-tactile (= 0.1.0)
56
+ jekyll-theme-time-machine (= 0.1.0)
57
+ jekyll-titles-from-headings (= 0.4.0)
58
+ jemoji (= 0.8.0)
59
+ kramdown (= 1.13.2)
60
+ liquid (= 4.0.0)
61
+ listen (= 3.0.6)
62
+ mercenary (~> 0.3)
63
+ minima (= 2.1.1)
64
+ rouge (= 1.11.1)
65
+ terminal-table (~> 1.4)
66
+ github-pages-health-check (1.3.5)
67
+ addressable (~> 2.3)
68
+ net-dns (~> 0.8)
69
+ octokit (~> 4.0)
70
+ public_suffix (~> 2.0)
71
+ typhoeus (~> 0.7)
72
+ html-pipeline (2.7.1)
73
+ activesupport (>= 2)
74
+ nokogiri (>= 1.4)
75
+ i18n (0.8.6)
76
+ jekyll (3.5.2)
77
+ addressable (~> 2.4)
78
+ colorator (~> 1.0)
79
+ jekyll-sass-converter (~> 1.0)
80
+ jekyll-watch (~> 1.1)
81
+ kramdown (~> 1.3)
82
+ liquid (~> 4.0)
83
+ mercenary (~> 0.3.3)
84
+ pathutil (~> 0.9)
85
+ rouge (~> 1.7)
86
+ safe_yaml (~> 1.0)
87
+ jekyll-avatar (0.5.0)
88
+ jekyll (~> 3.0)
89
+ jekyll-coffeescript (1.0.2)
90
+ coffee-script (~> 2.2)
91
+ coffee-script-source (~> 1.11.1)
92
+ jekyll-default-layout (0.1.4)
93
+ jekyll (~> 3.0)
94
+ jekyll-feed (0.9.2)
95
+ jekyll (~> 3.3)
96
+ jekyll-gist (1.4.1)
97
+ octokit (~> 4.2)
98
+ jekyll-github-metadata (2.9.3)
99
+ jekyll (~> 3.1)
100
+ octokit (~> 4.0, != 4.4.0)
101
+ jekyll-mentions (1.2.0)
102
+ activesupport (~> 4.0)
103
+ html-pipeline (~> 2.3)
104
+ jekyll (~> 3.0)
105
+ jekyll-optional-front-matter (0.2.0)
106
+ jekyll (~> 3.0)
107
+ jekyll-paginate (1.1.0)
108
+ jekyll-readme-index (0.1.0)
109
+ jekyll (~> 3.0)
110
+ jekyll-redirect-from (0.12.1)
111
+ jekyll (~> 3.3)
112
+ jekyll-relative-links (0.4.1)
113
+ jekyll (~> 3.3)
114
+ jekyll-sass-converter (1.5.0)
115
+ sass (~> 3.4)
116
+ jekyll-seo-tag (2.3.0)
117
+ jekyll (~> 3.3)
118
+ jekyll-sitemap (1.1.1)
119
+ jekyll (~> 3.3)
120
+ jekyll-swiss (0.4.0)
121
+ jekyll-theme-architect (0.1.0)
122
+ jekyll (~> 3.5)
123
+ jekyll-seo-tag (~> 2.0)
124
+ jekyll-theme-cayman (0.1.0)
125
+ jekyll (~> 3.5)
126
+ jekyll-seo-tag (~> 2.0)
127
+ jekyll-theme-dinky (0.1.0)
128
+ jekyll (~> 3.5)
129
+ jekyll-seo-tag (~> 2.0)
130
+ jekyll-theme-hacker (0.1.0)
131
+ jekyll (~> 3.5)
132
+ jekyll-seo-tag (~> 2.0)
133
+ jekyll-theme-leap-day (0.1.0)
134
+ jekyll (~> 3.5)
135
+ jekyll-seo-tag (~> 2.0)
136
+ jekyll-theme-merlot (0.1.0)
137
+ jekyll (~> 3.5)
138
+ jekyll-seo-tag (~> 2.0)
139
+ jekyll-theme-midnight (0.1.0)
140
+ jekyll (~> 3.5)
141
+ jekyll-seo-tag (~> 2.0)
142
+ jekyll-theme-minimal (0.1.0)
143
+ jekyll (~> 3.5)
144
+ jekyll-seo-tag (~> 2.0)
145
+ jekyll-theme-modernist (0.1.0)
146
+ jekyll (~> 3.5)
147
+ jekyll-seo-tag (~> 2.0)
148
+ jekyll-theme-primer (0.5.2)
149
+ jekyll (~> 3.5)
150
+ jekyll-github-metadata (~> 2.9)
151
+ jekyll-seo-tag (~> 2.2)
152
+ jekyll-theme-slate (0.1.0)
153
+ jekyll (~> 3.5)
154
+ jekyll-seo-tag (~> 2.0)
155
+ jekyll-theme-tactile (0.1.0)
156
+ jekyll (~> 3.5)
157
+ jekyll-seo-tag (~> 2.0)
158
+ jekyll-theme-time-machine (0.1.0)
159
+ jekyll (~> 3.5)
160
+ jekyll-seo-tag (~> 2.0)
161
+ jekyll-titles-from-headings (0.4.0)
162
+ jekyll (~> 3.3)
163
+ jekyll-watch (1.5.0)
164
+ listen (~> 3.0, < 3.1)
165
+ jemoji (0.8.0)
166
+ activesupport (~> 4.0)
167
+ gemoji (~> 3.0)
168
+ html-pipeline (~> 2.2)
169
+ jekyll (>= 3.0)
170
+ kramdown (1.13.2)
171
+ liquid (4.0.0)
172
+ listen (3.0.6)
173
+ rb-fsevent (>= 0.9.3)
174
+ rb-inotify (>= 0.9.7)
175
+ mercenary (0.3.6)
176
+ mini_portile2 (2.3.0)
177
+ minima (2.1.1)
178
+ jekyll (~> 3.3)
179
+ minitest (5.10.3)
180
+ multipart-post (2.0.0)
181
+ net-dns (0.8.0)
182
+ nokogiri (1.8.1)
183
+ mini_portile2 (~> 2.3.0)
184
+ octokit (4.7.0)
185
+ sawyer (~> 0.8.0, >= 0.5.3)
186
+ pathutil (0.14.0)
187
+ forwardable-extended (~> 2.6)
188
+ public_suffix (2.0.5)
189
+ rb-fsevent (0.10.2)
190
+ rb-inotify (0.9.10)
191
+ ffi (>= 0.5.0, < 2)
192
+ rouge (1.11.1)
193
+ safe_yaml (1.0.4)
194
+ sass (3.5.1)
195
+ sass-listen (~> 4.0.0)
196
+ sass-listen (4.0.0)
197
+ rb-fsevent (~> 0.9, >= 0.9.4)
198
+ rb-inotify (~> 0.9, >= 0.9.7)
199
+ sawyer (0.8.1)
200
+ addressable (>= 2.3.5, < 2.6)
201
+ faraday (~> 0.8, < 1.0)
202
+ terminal-table (1.8.0)
203
+ unicode-display_width (~> 1.1, >= 1.1.1)
204
+ thread_safe (0.3.6)
205
+ typhoeus (0.8.0)
206
+ ethon (>= 0.8.0)
207
+ tzinfo (1.2.3)
208
+ thread_safe (~> 0.1)
209
+ unicode-display_width (1.3.0)
210
+
211
+ PLATFORMS
212
+ ruby
213
+
214
+ DEPENDENCIES
215
+ github-pages
216
+ jekyll-feed (~> 0.6)
217
+
218
+ BUNDLED WITH
219
+ 1.14.6
data/docs/_config.yml ADDED
@@ -0,0 +1,45 @@
1
+ # Welcome to Jekyll!
2
+ #
3
+ # This config file is meant for settings that affect your whole blog, values
4
+ # which you are expected to set up once and rarely edit after that. If you find
5
+ # yourself editing this file very often, consider using Jekyll's data files
6
+ # feature for the data you need to update frequently.
7
+ #
8
+ # For technical reasons, this file is *NOT* reloaded automatically when you use
9
+ # 'bundle exec jekyll serve'. If you change this file, please restart the server process.
10
+
11
+ # Site settings
12
+ # These are used to personalize your new site. If you look in the HTML files,
13
+ # you will see them accessed via {{ site.title }}, {{ site.email }}, and so on.
14
+ # You can create any custom variable you would like, and they will be accessible
15
+ # in the templates via {{ site.myvariable }}.
16
+ title: DataStructures101
17
+ email: renehr9102@gmail.com
18
+ tagline: Intro to Data Structures on Ruby
19
+ description: ataStructures101 is a simple gem that groups several implementations of common data structures usually taught in Computer Science courses.
20
+ baseurl: "/data_structures_101" # the subpath of your site, e.g. /blog
21
+ url: "https://renehernandez.github.io" # the base hostname & protocol for your site, e.g. http://example.com
22
+ github_username: renehernandez
23
+ github: [metadata]
24
+
25
+ author:
26
+ name: Rene Hernandez
27
+ url: https://bitsofknowledge.net
28
+
29
+ # Build settings
30
+ markdown: kramdown
31
+ theme: jekyll-theme-cayman
32
+ plugins:
33
+ - jekyll-feed
34
+
35
+ # Exclude from processing.
36
+ # The following items will not be processed, by default. Create a custom list
37
+ # to override the default setting.
38
+ # exclude:
39
+ # - Gemfile
40
+ # - Gemfile.lock
41
+ # - node_modules
42
+ # - vendor/bundle/
43
+ # - vendor/cache/
44
+ # - vendor/gems/
45
+ # - vendor/ruby/
@@ -0,0 +1,9 @@
1
+ <head>
2
+ <meta charset="UTF-8">
3
+ <title>{{ site.title }}</title>
4
+ <meta name="viewport" content="width=device-width, initial-scale=1">
5
+ <meta name="theme-color" content="#157878">
6
+ <link rel="stylesheet" href="{{ site.baseurl }}/css/normalize.css">
7
+ <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'>
8
+ <link rel="stylesheet" href="{{ site.baseurl }}/css/cayman.css">
9
+ </head>
@@ -0,0 +1,4 @@
1
+ <footer class="site-footer">
2
+ <span class="site-footer-owner"><a href="{{ site.url }}">{{ site.title }}</a> is maintained by <a href="{{ site.author.url }}">{{ site.author.name }}</a>.</span>
3
+ <span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a>.</span>
4
+ </footer>
@@ -0,0 +1,6 @@
1
+ <section class="page-header">
2
+ <h1 class="project-name">{{ site.title }}</h1>
3
+ <h2 class="project-tagline">{{ site.tagline }}</h2>
4
+ <a href="{{ site.baseurl }}{% link index.md %}" class="btn">Home</a>
5
+ <a href="{{ site.baseurl }}{% link pages/performance.md %}" class="btn">Performance Analysis</a>
6
+ </section>
@@ -0,0 +1,18 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-us">
3
+
4
+ {% include head.html %}
5
+
6
+ <body>
7
+ {% include page-header.html %}
8
+
9
+ <section class="main-content">
10
+
11
+ {{ content }}
12
+
13
+ {% include page-footer.html %}
14
+
15
+ </section>
16
+
17
+ </body>
18
+ </html>
@@ -0,0 +1,5 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ {{ content }}
@@ -0,0 +1,192 @@
1
+ .highlight table td { padding: 5px; }
2
+
3
+ .highlight table pre { margin: 0; }
4
+
5
+ .highlight .cm { color: #999988; font-style: italic; }
6
+
7
+ .highlight .cp { color: #999999; font-weight: bold; }
8
+
9
+ .highlight .c1 { color: #999988; font-style: italic; }
10
+
11
+ .highlight .cs { color: #999999; font-weight: bold; font-style: italic; }
12
+
13
+ .highlight .c, .highlight .cd { color: #999988; font-style: italic; }
14
+
15
+ .highlight .err { color: #a61717; background-color: #e3d2d2; }
16
+
17
+ .highlight .gd { color: #000000; background-color: #ffdddd; }
18
+
19
+ .highlight .ge { color: #000000; font-style: italic; }
20
+
21
+ .highlight .gr { color: #aa0000; }
22
+
23
+ .highlight .gh { color: #999999; }
24
+
25
+ .highlight .gi { color: #000000; background-color: #ddffdd; }
26
+
27
+ .highlight .go { color: #888888; }
28
+
29
+ .highlight .gp { color: #555555; }
30
+
31
+ .highlight .gs { font-weight: bold; }
32
+
33
+ .highlight .gu { color: #aaaaaa; }
34
+
35
+ .highlight .gt { color: #aa0000; }
36
+
37
+ .highlight .kc { color: #000000; font-weight: bold; }
38
+
39
+ .highlight .kd { color: #000000; font-weight: bold; }
40
+
41
+ .highlight .kn { color: #000000; font-weight: bold; }
42
+
43
+ .highlight .kp { color: #000000; font-weight: bold; }
44
+
45
+ .highlight .kr { color: #000000; font-weight: bold; }
46
+
47
+ .highlight .kt { color: #445588; font-weight: bold; }
48
+
49
+ .highlight .k, .highlight .kv { color: #000000; font-weight: bold; }
50
+
51
+ .highlight .mf { color: #009999; }
52
+
53
+ .highlight .mh { color: #009999; }
54
+
55
+ .highlight .il { color: #009999; }
56
+
57
+ .highlight .mi { color: #009999; }
58
+
59
+ .highlight .mo { color: #009999; }
60
+
61
+ .highlight .m, .highlight .mb, .highlight .mx { color: #009999; }
62
+
63
+ .highlight .sb { color: #d14; }
64
+
65
+ .highlight .sc { color: #d14; }
66
+
67
+ .highlight .sd { color: #d14; }
68
+
69
+ .highlight .s2 { color: #d14; }
70
+
71
+ .highlight .se { color: #d14; }
72
+
73
+ .highlight .sh { color: #d14; }
74
+
75
+ .highlight .si { color: #d14; }
76
+
77
+ .highlight .sx { color: #d14; }
78
+
79
+ .highlight .sr { color: #009926; }
80
+
81
+ .highlight .s1 { color: #d14; }
82
+
83
+ .highlight .ss { color: #990073; }
84
+
85
+ .highlight .s { color: #d14; }
86
+
87
+ .highlight .na { color: #008080; }
88
+
89
+ .highlight .bp { color: #999999; }
90
+
91
+ .highlight .nb { color: #0086B3; }
92
+
93
+ .highlight .nc { color: #445588; font-weight: bold; }
94
+
95
+ .highlight .no { color: #008080; }
96
+
97
+ .highlight .nd { color: #3c5d5d; font-weight: bold; }
98
+
99
+ .highlight .ni { color: #800080; }
100
+
101
+ .highlight .ne { color: #990000; font-weight: bold; }
102
+
103
+ .highlight .nf { color: #990000; font-weight: bold; }
104
+
105
+ .highlight .nl { color: #990000; font-weight: bold; }
106
+
107
+ .highlight .nn { color: #555555; }
108
+
109
+ .highlight .nt { color: #000080; }
110
+
111
+ .highlight .vc { color: #008080; }
112
+
113
+ .highlight .vg { color: #008080; }
114
+
115
+ .highlight .vi { color: #008080; }
116
+
117
+ .highlight .nv { color: #008080; }
118
+
119
+ .highlight .ow { color: #000000; font-weight: bold; }
120
+
121
+ .highlight .o { color: #000000; font-weight: bold; }
122
+
123
+ .highlight .w { color: #bbbbbb; }
124
+
125
+ .highlight { background-color: #f8f8f8; }
126
+
127
+ * { box-sizing: border-box; }
128
+
129
+ body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; }
130
+
131
+ a { color: #1e6bb8; text-decoration: none; }
132
+ a:hover { text-decoration: underline; }
133
+
134
+ .btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; }
135
+ .btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); }
136
+ .btn + .btn { margin-left: 1rem; }
137
+ @media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } }
138
+ @media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } }
139
+ @media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; }
140
+ .btn + .btn { margin-top: 1rem; margin-left: 0; } }
141
+
142
+ .page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); }
143
+ @media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } }
144
+ @media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } }
145
+ @media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } }
146
+
147
+ .project-name { margin-top: 0; margin-bottom: 0.1rem; }
148
+ @media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } }
149
+ @media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } }
150
+ @media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } }
151
+
152
+ .project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; }
153
+ @media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } }
154
+ @media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } }
155
+ @media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } }
156
+
157
+ .main-content { word-wrap: break-word; }
158
+ .main-content :first-child { margin-top: 0; }
159
+ @media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } }
160
+ @media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } }
161
+ @media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } }
162
+ .main-content img { max-width: 100%; }
163
+ .main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; }
164
+ .main-content p { margin-bottom: 1em; }
165
+ .main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; }
166
+ .main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; }
167
+ .main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; }
168
+ .main-content .highlight { margin-bottom: 1rem; }
169
+ .main-content .highlight pre { margin-bottom: 0; word-break: normal; }
170
+ .main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; }
171
+ .main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; }
172
+ .main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; }
173
+ .main-content ul, .main-content ol { margin-top: 0; }
174
+ .main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; }
175
+ .main-content blockquote > :first-child { margin-top: 0; }
176
+ .main-content blockquote > :last-child { margin-bottom: 0; }
177
+ .main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; }
178
+ .main-content table th { font-weight: bold; }
179
+ .main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; }
180
+ .main-content dl { padding: 0; }
181
+ .main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; }
182
+ .main-content dl dd { padding: 0; margin-bottom: 1rem; }
183
+ .main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; }
184
+
185
+ .site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; }
186
+ @media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } }
187
+ @media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } }
188
+ @media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } }
189
+
190
+ .site-footer-owner { display: block; font-weight: bold; }
191
+
192
+ .site-footer-credits { color: #819198; }
@@ -0,0 +1,424 @@
1
+ /*! normalize.css v3.0.2 | MIT License | git.io/normalize */
2
+
3
+ /**
4
+ * 1. Set default font family to sans-serif.
5
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
6
+ * user zoom.
7
+ */
8
+
9
+ html {
10
+ font-family: sans-serif; /* 1 */
11
+ -ms-text-size-adjust: 100%; /* 2 */
12
+ -webkit-text-size-adjust: 100%; /* 2 */
13
+ }
14
+
15
+ /**
16
+ * Remove default margin.
17
+ */
18
+
19
+ body {
20
+ margin: 0;
21
+ }
22
+
23
+ /* HTML5 display definitions
24
+ ========================================================================== */
25
+
26
+ /**
27
+ * Correct `block` display not defined for any HTML5 element in IE 8/9.
28
+ * Correct `block` display not defined for `details` or `summary` in IE 10/11
29
+ * and Firefox.
30
+ * Correct `block` display not defined for `main` in IE 11.
31
+ */
32
+
33
+ article,
34
+ aside,
35
+ details,
36
+ figcaption,
37
+ figure,
38
+ footer,
39
+ header,
40
+ hgroup,
41
+ main,
42
+ menu,
43
+ nav,
44
+ section,
45
+ summary {
46
+ display: block;
47
+ }
48
+
49
+ /**
50
+ * 1. Correct `inline-block` display not defined in IE 8/9.
51
+ * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
52
+ */
53
+
54
+ audio,
55
+ canvas,
56
+ progress,
57
+ video {
58
+ display: inline-block; /* 1 */
59
+ vertical-align: baseline; /* 2 */
60
+ }
61
+
62
+ /**
63
+ * Prevent modern browsers from displaying `audio` without controls.
64
+ * Remove excess height in iOS 5 devices.
65
+ */
66
+
67
+ audio:not([controls]) {
68
+ display: none;
69
+ height: 0;
70
+ }
71
+
72
+ /**
73
+ * Address `[hidden]` styling not present in IE 8/9/10.
74
+ * Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
75
+ */
76
+
77
+ [hidden],
78
+ template {
79
+ display: none;
80
+ }
81
+
82
+ /* Links
83
+ ========================================================================== */
84
+
85
+ /**
86
+ * Remove the gray background color from active links in IE 10.
87
+ */
88
+
89
+ a {
90
+ background-color: transparent;
91
+ }
92
+
93
+ /**
94
+ * Improve readability when focused and also mouse hovered in all browsers.
95
+ */
96
+
97
+ a:active,
98
+ a:hover {
99
+ outline: 0;
100
+ }
101
+
102
+ /* Text-level semantics
103
+ ========================================================================== */
104
+
105
+ /**
106
+ * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
107
+ */
108
+
109
+ abbr[title] {
110
+ border-bottom: 1px dotted;
111
+ }
112
+
113
+ /**
114
+ * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
115
+ */
116
+
117
+ b,
118
+ strong {
119
+ font-weight: bold;
120
+ }
121
+
122
+ /**
123
+ * Address styling not present in Safari and Chrome.
124
+ */
125
+
126
+ dfn {
127
+ font-style: italic;
128
+ }
129
+
130
+ /**
131
+ * Address variable `h1` font-size and margin within `section` and `article`
132
+ * contexts in Firefox 4+, Safari, and Chrome.
133
+ */
134
+
135
+ h1 {
136
+ font-size: 2em;
137
+ margin: 0.67em 0;
138
+ }
139
+
140
+ /**
141
+ * Address styling not present in IE 8/9.
142
+ */
143
+
144
+ mark {
145
+ background: #ff0;
146
+ color: #000;
147
+ }
148
+
149
+ /**
150
+ * Address inconsistent and variable font size in all browsers.
151
+ */
152
+
153
+ small {
154
+ font-size: 80%;
155
+ }
156
+
157
+ /**
158
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
159
+ */
160
+
161
+ sub,
162
+ sup {
163
+ font-size: 75%;
164
+ line-height: 0;
165
+ position: relative;
166
+ vertical-align: baseline;
167
+ }
168
+
169
+ sup {
170
+ top: -0.5em;
171
+ }
172
+
173
+ sub {
174
+ bottom: -0.25em;
175
+ }
176
+
177
+ /* Embedded content
178
+ ========================================================================== */
179
+
180
+ /**
181
+ * Remove border when inside `a` element in IE 8/9/10.
182
+ */
183
+
184
+ img {
185
+ border: 0;
186
+ }
187
+
188
+ /**
189
+ * Correct overflow not hidden in IE 9/10/11.
190
+ */
191
+
192
+ svg:not(:root) {
193
+ overflow: hidden;
194
+ }
195
+
196
+ /* Grouping content
197
+ ========================================================================== */
198
+
199
+ /**
200
+ * Address margin not present in IE 8/9 and Safari.
201
+ */
202
+
203
+ figure {
204
+ margin: 1em 40px;
205
+ }
206
+
207
+ /**
208
+ * Address differences between Firefox and other browsers.
209
+ */
210
+
211
+ hr {
212
+ box-sizing: content-box;
213
+ height: 0;
214
+ }
215
+
216
+ /**
217
+ * Contain overflow in all browsers.
218
+ */
219
+
220
+ pre {
221
+ overflow: auto;
222
+ }
223
+
224
+ /**
225
+ * Address odd `em`-unit font size rendering in all browsers.
226
+ */
227
+
228
+ code,
229
+ kbd,
230
+ pre,
231
+ samp {
232
+ font-family: monospace, monospace;
233
+ font-size: 1em;
234
+ }
235
+
236
+ /* Forms
237
+ ========================================================================== */
238
+
239
+ /**
240
+ * Known limitation: by default, Chrome and Safari on OS X allow very limited
241
+ * styling of `select`, unless a `border` property is set.
242
+ */
243
+
244
+ /**
245
+ * 1. Correct color not being inherited.
246
+ * Known issue: affects color of disabled elements.
247
+ * 2. Correct font properties not being inherited.
248
+ * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
249
+ */
250
+
251
+ button,
252
+ input,
253
+ optgroup,
254
+ select,
255
+ textarea {
256
+ color: inherit; /* 1 */
257
+ font: inherit; /* 2 */
258
+ margin: 0; /* 3 */
259
+ }
260
+
261
+ /**
262
+ * Address `overflow` set to `hidden` in IE 8/9/10/11.
263
+ */
264
+
265
+ button {
266
+ overflow: visible;
267
+ }
268
+
269
+ /**
270
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
271
+ * All other form control elements do not inherit `text-transform` values.
272
+ * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera.
273
+ * Correct `select` style inheritance in Firefox.
274
+ */
275
+
276
+ button,
277
+ select {
278
+ text-transform: none;
279
+ }
280
+
281
+ /**
282
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
283
+ * and `video` controls.
284
+ * 2. Correct inability to style clickable `input` types in iOS.
285
+ * 3. Improve usability and consistency of cursor style between image-type
286
+ * `input` and others.
287
+ */
288
+
289
+ button,
290
+ html input[type="button"], /* 1 */
291
+ input[type="reset"],
292
+ input[type="submit"] {
293
+ -webkit-appearance: button; /* 2 */
294
+ cursor: pointer; /* 3 */
295
+ }
296
+
297
+ /**
298
+ * Re-set default cursor for disabled elements.
299
+ */
300
+
301
+ button[disabled],
302
+ html input[disabled] {
303
+ cursor: default;
304
+ }
305
+
306
+ /**
307
+ * Remove inner padding and border in Firefox 4+.
308
+ */
309
+
310
+ button::-moz-focus-inner,
311
+ input::-moz-focus-inner {
312
+ border: 0;
313
+ padding: 0;
314
+ }
315
+
316
+ /**
317
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
318
+ * the UA stylesheet.
319
+ */
320
+
321
+ input {
322
+ line-height: normal;
323
+ }
324
+
325
+ /**
326
+ * It's recommended that you don't attempt to style these elements.
327
+ * Firefox's implementation doesn't respect box-sizing, padding, or width.
328
+ *
329
+ * 1. Address box sizing set to `content-box` in IE 8/9/10.
330
+ * 2. Remove excess padding in IE 8/9/10.
331
+ */
332
+
333
+ input[type="checkbox"],
334
+ input[type="radio"] {
335
+ box-sizing: border-box; /* 1 */
336
+ padding: 0; /* 2 */
337
+ }
338
+
339
+ /**
340
+ * Fix the cursor style for Chrome's increment/decrement buttons. For certain
341
+ * `font-size` values of the `input`, it causes the cursor style of the
342
+ * decrement button to change from `default` to `text`.
343
+ */
344
+
345
+ input[type="number"]::-webkit-inner-spin-button,
346
+ input[type="number"]::-webkit-outer-spin-button {
347
+ height: auto;
348
+ }
349
+
350
+ /**
351
+ * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
352
+ * 2. Address `box-sizing` set to `border-box` in Safari and Chrome
353
+ * (include `-moz` to future-proof).
354
+ */
355
+
356
+ input[type="search"] {
357
+ -webkit-appearance: textfield; /* 1 */ /* 2 */
358
+ box-sizing: content-box;
359
+ }
360
+
361
+ /**
362
+ * Remove inner padding and search cancel button in Safari and Chrome on OS X.
363
+ * Safari (but not Chrome) clips the cancel button when the search input has
364
+ * padding (and `textfield` appearance).
365
+ */
366
+
367
+ input[type="search"]::-webkit-search-cancel-button,
368
+ input[type="search"]::-webkit-search-decoration {
369
+ -webkit-appearance: none;
370
+ }
371
+
372
+ /**
373
+ * Define consistent border, margin, and padding.
374
+ */
375
+
376
+ fieldset {
377
+ border: 1px solid #c0c0c0;
378
+ margin: 0 2px;
379
+ padding: 0.35em 0.625em 0.75em;
380
+ }
381
+
382
+ /**
383
+ * 1. Correct `color` not being inherited in IE 8/9/10/11.
384
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
385
+ */
386
+
387
+ legend {
388
+ border: 0; /* 1 */
389
+ padding: 0; /* 2 */
390
+ }
391
+
392
+ /**
393
+ * Remove default vertical scrollbar in IE 8/9/10/11.
394
+ */
395
+
396
+ textarea {
397
+ overflow: auto;
398
+ }
399
+
400
+ /**
401
+ * Don't inherit the `font-weight` (applied by a rule above).
402
+ * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
403
+ */
404
+
405
+ optgroup {
406
+ font-weight: bold;
407
+ }
408
+
409
+ /* Tables
410
+ ========================================================================== */
411
+
412
+ /**
413
+ * Remove most spacing between table cells.
414
+ */
415
+
416
+ table {
417
+ border-collapse: collapse;
418
+ border-spacing: 0;
419
+ }
420
+
421
+ td,
422
+ th {
423
+ padding: 0;
424
+ }
data/docs/index.md ADDED
@@ -0,0 +1,3 @@
1
+ ---
2
+ layout: default
3
+ ---
@@ -0,0 +1,23 @@
1
+ ---
2
+ layout: page
3
+ title: Performance Analysis
4
+ permalink: /performance/
5
+ ---
6
+
7
+ Besides the tests suite, it is also possible to run performance comparisons between implementation variations of the same data structures.
8
+
9
+ #### What are we benchmarking?
10
+
11
+ To aid in our quest of benchmarking the ruby code, we use [benchmark-ips](https://github.com/evanphx/benchmark-ips) to get data about the number of iteration per seconds for a given block of code.
12
+
13
+ #### Graph results
14
+
15
+ To help with the results visualization and spotting patterns on the data, the benchmark classes generate graphs results using [Gruff](https://github.com/topfunky/gruff).
16
+
17
+ #### BenchmarkHelper
18
+
19
+ All benchkmark comparisons subclass `BenchmarkHelper` to reuse some utility methods and string helpers. At the same time it brings a common convention about to proceed for the performance testing. You can find the existing benchmark implementations at [https://github.com/renehernandez/data_structures_101/tree/master/perf](https://github.com/renehernandez/data_structures_101/tree/master/perf).
20
+
21
+ #### Rake task for performance
22
+
23
+ Since the performance tests are not rspec-based, they cannot be run through the rspec cli. Instead, there is a set of rake tasks to run our performance tests. By loading [perf.rake](https://github.com/renehernandez/data_structures_101/blob/master/tasks/perf.rake) on the rake file we can run and generate the corresponding graphs for the analyses.
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DataStructures101
4
- VERSION = '0.2.7'
4
+ VERSION = '0.2.8'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: data_structures_101
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - renehernandez
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-09-09 00:00:00.000000000 Z
11
+ date: 2017-09-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3.5'
55
- - !ruby/object:Gem::Dependency
56
- name: reek
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '4.7'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '4.7'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rubocop
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +108,20 @@ dependencies:
122
108
  - - "~>"
123
109
  - !ruby/object:Gem::Version
124
110
  version: '1.6'
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.15'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '0.15'
125
125
  description:
126
126
  email:
127
127
  - renehr9102@gmail.com
@@ -129,6 +129,7 @@ executables: []
129
129
  extensions: []
130
130
  extra_rdoc_files: []
131
131
  files:
132
+ - ".codeclimate.yml"
132
133
  - ".editorconfig"
133
134
  - ".gitignore"
134
135
  - ".rspec"
@@ -139,11 +140,21 @@ files:
139
140
  - LICENSE.txt
140
141
  - README.md
141
142
  - Rakefile
142
- - _config.yml
143
143
  - bin/console
144
144
  - bin/setup
145
- - config.reek
146
145
  - data_structures_101.gemspec
146
+ - docs/.gitignore
147
+ - docs/404.html
148
+ - docs/Gemfile
149
+ - docs/Gemfile.lock
150
+ - docs/_config.yml
151
+ - docs/_includes/head.html
152
+ - docs/_includes/page-footer.html
153
+ - docs/_includes/page-header.html
154
+ - docs/_layouts/default.html
155
+ - docs/_layouts/page.html
156
+ - docs/css/cayman.css
157
+ - docs/css/normalize.css
147
158
  - docs/graphs/hash/default_benchmark_delete.png
148
159
  - docs/graphs/hash/default_benchmark_find.png
149
160
  - docs/graphs/hash/default_benchmark_insert.png
@@ -153,6 +164,8 @@ files:
153
164
  - docs/graphs/hash/quadratic_probing_benchmark_delete.png
154
165
  - docs/graphs/hash/quadratic_probing_benchmark_find.png
155
166
  - docs/graphs/hash/quadratic_probing_benchmark_insert.png
167
+ - docs/index.md
168
+ - docs/pages/performance.md
156
169
  - lib/data_structures_101.rb
157
170
  - lib/data_structures_101/chained_hash_table.rb
158
171
  - lib/data_structures_101/hash/base_hash_table.rb
data/_config.yml DELETED
@@ -1,2 +0,0 @@
1
- theme: jekyll-theme-slate
2
- title: Welcome to DataStructures101
data/config.reek DELETED
@@ -1,6 +0,0 @@
1
- TooManyStatements:
2
- max_statements: 20
3
-
4
- UncommunicativeModuleName:
5
- accept:
6
- - DataStructures101