shrek 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -1
  3. data/examples/tree_pruning/.gitignore +30 -0
  4. data/examples/tree_pruning/.rspec +3 -0
  5. data/examples/tree_pruning/.rubocop.yml +10 -0
  6. data/examples/tree_pruning/.ruby-version +1 -0
  7. data/examples/tree_pruning/Gemfile +70 -0
  8. data/examples/tree_pruning/README.md +83 -0
  9. data/examples/tree_pruning/Rakefile +8 -0
  10. data/examples/tree_pruning/app/assets/config/manifest.js +3 -0
  11. data/examples/tree_pruning/app/assets/images/.keep +0 -0
  12. data/examples/tree_pruning/app/assets/javascripts/application.js +16 -0
  13. data/examples/tree_pruning/app/assets/javascripts/cable.js +13 -0
  14. data/examples/tree_pruning/app/assets/javascripts/channels/.keep +0 -0
  15. data/examples/tree_pruning/app/assets/stylesheets/application.css +15 -0
  16. data/examples/tree_pruning/app/channels/application_cable/channel.rb +6 -0
  17. data/examples/tree_pruning/app/channels/application_cable/connection.rb +6 -0
  18. data/examples/tree_pruning/app/controllers/application_controller.rb +4 -0
  19. data/examples/tree_pruning/app/controllers/concerns/.keep +0 -0
  20. data/examples/tree_pruning/app/controllers/tree_controller.rb +13 -0
  21. data/examples/tree_pruning/app/helpers/application_helper.rb +4 -0
  22. data/examples/tree_pruning/app/jobs/application_job.rb +4 -0
  23. data/examples/tree_pruning/app/lib/layers/external_fetcher.rb +21 -0
  24. data/examples/tree_pruning/app/lib/layers/parser.rb +11 -0
  25. data/examples/tree_pruning/app/lib/layers/selector.rb +46 -0
  26. data/examples/tree_pruning/app/lib/statistics_processor.rb +9 -0
  27. data/examples/tree_pruning/app/mailers/application_mailer.rb +6 -0
  28. data/examples/tree_pruning/app/models/application_record.rb +5 -0
  29. data/examples/tree_pruning/app/models/concerns/.keep +0 -0
  30. data/examples/tree_pruning/app/views/layouts/application.html.erb +15 -0
  31. data/examples/tree_pruning/app/views/layouts/mailer.html.erb +13 -0
  32. data/examples/tree_pruning/app/views/layouts/mailer.text.erb +1 -0
  33. data/examples/tree_pruning/bin/bundle +5 -0
  34. data/examples/tree_pruning/bin/rails +11 -0
  35. data/examples/tree_pruning/bin/rake +11 -0
  36. data/examples/tree_pruning/bin/setup +38 -0
  37. data/examples/tree_pruning/bin/spring +18 -0
  38. data/examples/tree_pruning/bin/update +33 -0
  39. data/examples/tree_pruning/bin/yarn +11 -0
  40. data/examples/tree_pruning/config.ru +7 -0
  41. data/examples/tree_pruning/config/application.rb +21 -0
  42. data/examples/tree_pruning/config/boot.rb +6 -0
  43. data/examples/tree_pruning/config/cable.yml +10 -0
  44. data/examples/tree_pruning/config/credentials.yml.enc +1 -0
  45. data/examples/tree_pruning/config/database.yml +25 -0
  46. data/examples/tree_pruning/config/environment.rb +7 -0
  47. data/examples/tree_pruning/config/environments/development.rb +63 -0
  48. data/examples/tree_pruning/config/environments/production.rb +96 -0
  49. data/examples/tree_pruning/config/environments/test.rb +48 -0
  50. data/examples/tree_pruning/config/initializers/application_controller_renderer.rb +9 -0
  51. data/examples/tree_pruning/config/initializers/assets.rb +16 -0
  52. data/examples/tree_pruning/config/initializers/backtrace_silencers.rb +8 -0
  53. data/examples/tree_pruning/config/initializers/content_security_policy.rb +26 -0
  54. data/examples/tree_pruning/config/initializers/cookies_serializer.rb +7 -0
  55. data/examples/tree_pruning/config/initializers/filter_parameter_logging.rb +6 -0
  56. data/examples/tree_pruning/config/initializers/inflections.rb +17 -0
  57. data/examples/tree_pruning/config/initializers/mime_types.rb +5 -0
  58. data/examples/tree_pruning/config/initializers/wrap_parameters.rb +16 -0
  59. data/examples/tree_pruning/config/locales/en.yml +33 -0
  60. data/examples/tree_pruning/config/puma.rb +36 -0
  61. data/examples/tree_pruning/config/routes.rb +6 -0
  62. data/examples/tree_pruning/config/spring.rb +8 -0
  63. data/examples/tree_pruning/config/storage.yml +34 -0
  64. data/examples/tree_pruning/db/seeds.rb +8 -0
  65. data/examples/tree_pruning/lib/assets/.keep +0 -0
  66. data/examples/tree_pruning/lib/tasks/.keep +0 -0
  67. data/examples/tree_pruning/log/.keep +0 -0
  68. data/examples/tree_pruning/package.json +5 -0
  69. data/examples/tree_pruning/public/404.html +67 -0
  70. data/examples/tree_pruning/public/422.html +67 -0
  71. data/examples/tree_pruning/public/500.html +66 -0
  72. data/examples/tree_pruning/public/apple-touch-icon-precomposed.png +0 -0
  73. data/examples/tree_pruning/public/apple-touch-icon.png +0 -0
  74. data/examples/tree_pruning/public/favicon.ico +0 -0
  75. data/examples/tree_pruning/public/robots.txt +1 -0
  76. data/examples/tree_pruning/spec/fixtures/.keep +0 -0
  77. data/examples/tree_pruning/spec/fixtures/files/.keep +0 -0
  78. data/examples/tree_pruning/spec/fixtures/files/people_stats.json +2682 -0
  79. data/examples/tree_pruning/spec/lib/layers/external_fetcher_spec.rb +32 -0
  80. data/examples/tree_pruning/spec/lib/layers/parser_spec.rb +17 -0
  81. data/examples/tree_pruning/spec/lib/layers/selector_spec.rb +40 -0
  82. data/examples/tree_pruning/spec/lib/statistics_processor_spec.rb +24 -0
  83. data/examples/tree_pruning/spec/rails_helper.rb +59 -0
  84. data/examples/tree_pruning/spec/spec_helper.rb +96 -0
  85. data/examples/tree_pruning/spec/support/people_stats.rb +15 -0
  86. data/examples/tree_pruning/spec/system/root_spec.rb +30 -0
  87. data/examples/tree_pruning/tmp/.keep +0 -0
  88. data/examples/tree_pruning/vendor/.keep +0 -0
  89. data/lib/shrek/runner.rb +5 -1
  90. data/lib/shrek/version.rb +1 -1
  91. metadata +88 -2
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+ require 'webmock/rspec'
5
+
6
+ RSpec.describe Layers::ExternalFetcher do
7
+ context 'retry' do
8
+ it 'retries if a request fails' do
9
+ times = 3
10
+ allow(subject).to receive(:response) do
11
+ raise 'Hiccup' if (times -= 1).positive?
12
+ 'THE_RESULT'
13
+ end
14
+
15
+ expect(subject.call.first).to eq('THE_RESULT')
16
+ end
17
+
18
+ it 'gives up after 3 retries' do
19
+ times = 4
20
+ allow(subject).to receive(:response) do
21
+ raise 'Hiccup' if (times -= 1).positive?
22
+ 'Newer reach here'
23
+ end
24
+ expect(subject.call).to(include(status: :internal_server_error))
25
+ end
26
+ end
27
+
28
+ it "act's as Shrek, pusing request result forward" do
29
+ stub_request(:get, 'http://enter_real_uri_here.stub/').to_return(status: 200, body: 'MyResult')
30
+ expect(subject.call.first).to eq 'MyResult'
31
+ end
32
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Layers::Parser do
6
+ include PeopleStats
7
+
8
+ let(:file) { people_stats }
9
+
10
+ it 'should parse valid json' do
11
+ expect(subject.call(file)).to be_truthy
12
+ end
13
+
14
+ it 'should not parse invalid json' do
15
+ expect(subject.call('{invalid: json:[}')).to include(status: :unprocessable_entity)
16
+ end
17
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe Layers::Selector do
6
+ include PeopleStats
7
+
8
+ let(:json) { people_stats_json }
9
+
10
+ it 'should get all 12 themes with out query' do
11
+ expect(subject.call(json)[:json].size).to eq 12
12
+ end
13
+
14
+ it 'should lookup sub_themes' do
15
+ # first `first` is for shrek chain, and the second one is for initial json, but looks aweful :(
16
+ result = subject.call(json.deep_dup, sub_theme_ids: 1)[:json].first
17
+
18
+ expect(result).to be_a Hash
19
+ expect(result['id']).to eq 1
20
+ end
21
+
22
+ it 'should lookup categories' do
23
+ result = subject.call(json.deep_dup, categorie_ids: 11)[:json].first['sub_themes'].first['categories'].first
24
+ expect(result).to be_a Hash
25
+ expect(result['id']).to eq 11
26
+ end
27
+
28
+ it 'should lookup indicators' do
29
+ result = subject.call(json.deep_dup, indicator_ids: [1, 31, 32])[:json]
30
+
31
+ expect(result.first['sub_themes'].first['categories'].first['indicators'].first['id']).to eq 1
32
+ expect(result.last['sub_themes'].first['categories'].first['indicators'].map { |a| a['id'] }).to include(32, 31)
33
+ end
34
+
35
+ it 'should return status if nothing found' do
36
+ result = subject.call(json.deep_dup, sub_theme_ids: 1984)
37
+ expect(result).to be_a Hash
38
+ expect(result).to include(status: :not_found)
39
+ end
40
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ RSpec.describe StatisticsProcessor do
6
+ include PeopleStats
7
+
8
+ let(:file) { people_stats }
9
+
10
+ before do
11
+ stub_request(:get, 'http://enter_real_uri_here.stub/').to_return(body: file)
12
+ end
13
+
14
+ it 'should return all collection' do
15
+ expect(subject.call[:json].size).to eq 12
16
+ end
17
+
18
+ it 'should return filtered collection' do
19
+ result = subject.call(indicator_ids: [1, 31, 32])[:json]
20
+
21
+ expect(result.first['sub_themes'].first['categories'].first['indicators'].first['id']).to eq 1
22
+ expect(result.last['sub_themes'].first['categories'].first['indicators'].map { |a| a['id'] }).to include(32, 31)
23
+ end
24
+ end
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
4
+ require 'spec_helper'
5
+ ENV['RAILS_ENV'] ||= 'test'
6
+ require File.expand_path('../config/environment', __dir__)
7
+ # Prevent database truncation if the environment is production
8
+ abort('The Rails environment is running in production mode!') if Rails.env.production?
9
+ require 'rspec/rails'
10
+ # Add additional requires below this line. Rails is not loaded until this point!
11
+
12
+ # Requires supporting ruby files with custom matchers and macros, etc, in
13
+ # spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are
14
+ # run as spec files by default. This means that files in spec/support that end
15
+ # in _spec.rb will both be required and run as specs, causing the specs to be
16
+ # run twice. It is recommended that you do not name files matching this glob to
17
+ # end with _spec.rb. You can configure this pattern with the --pattern
18
+ # option on the command line or in ~/.rspec, .rspec or `.rspec-local`.
19
+ #
20
+ # The following line is provided for convenience purposes. It has the downside
21
+ # of increasing the boot-up time by auto-requiring all files in the support
22
+ # directory. Alternatively, in the individual `*_spec.rb` files, manually
23
+ # require only the support files necessary.
24
+ #
25
+ Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }
26
+
27
+ # Checks for pending migrations and applies them before tests are run.
28
+ # If you are not using ActiveRecord, you can remove this line.
29
+ ActiveRecord::Migration.maintain_test_schema!
30
+
31
+ RSpec.configure do |config|
32
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
33
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
34
+
35
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
36
+ # examples within a transaction, remove the following line or assign false
37
+ # instead of true.
38
+ config.use_transactional_fixtures = true
39
+
40
+ # RSpec Rails can automatically mix in different behaviours to your tests
41
+ # based on their file location, for example enabling you to call `get` and
42
+ # `post` in specs under `spec/controllers`.
43
+ #
44
+ # You can disable this behaviour by removing the line below, and instead
45
+ # explicitly tag your specs with their type, e.g.:
46
+ #
47
+ # RSpec.describe UsersController, :type => :controller do
48
+ # # ...
49
+ # end
50
+ #
51
+ # The different available types are documented in the features, such as in
52
+ # https://relishapp.com/rspec/rspec-rails/docs
53
+ config.infer_spec_type_from_file_location!
54
+
55
+ # Filter lines from Rails gems in backtraces.
56
+ config.filter_rails_from_backtrace!
57
+ # arbitrary gems may also be filtered via:
58
+ # config.filter_gems_from_backtrace("gem name")
59
+ end
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ # This file was generated by the `rails generate rspec:install` command. Conventionally, all
4
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
5
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
6
+ # this file to always be loaded, without a need to explicitly require it in any
7
+ # files.
8
+ #
9
+ # Given that it is always loaded, you are encouraged to keep this file as
10
+ # light-weight as possible. Requiring heavyweight dependencies from this file
11
+ # will add to the boot time of your test suite on EVERY test run, even for an
12
+ # individual file that may not need all of that loaded. Instead, consider making
13
+ # a separate helper file that requires the additional dependencies and performs
14
+ # the additional setup, and require it from the spec files that actually need
15
+ # it.
16
+ #
17
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
18
+ RSpec.configure do |config|
19
+ # rspec-expectations config goes here. You can use an alternate
20
+ # assertion/expectation library such as wrong or the stdlib/minitest
21
+ # assertions if you prefer.
22
+ config.expect_with :rspec do |expectations|
23
+ # This option will default to `true` in RSpec 4. It makes the `description`
24
+ # and `failure_message` of custom matchers include text for helper methods
25
+ # defined using `chain`, e.g.:
26
+ # be_bigger_than(2).and_smaller_than(4).description
27
+ # # => "be bigger than 2 and smaller than 4"
28
+ # ...rather than:
29
+ # # => "be bigger than 2"
30
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
31
+ end
32
+
33
+ # rspec-mocks config goes here. You can use an alternate test double
34
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
35
+ config.mock_with :rspec do |mocks|
36
+ # Prevents you from mocking or stubbing a method that does not exist on
37
+ # a real object. This is generally recommended, and will default to
38
+ # `true` in RSpec 4.
39
+ mocks.verify_partial_doubles = true
40
+ end
41
+
42
+ # This option will default to `:apply_to_host_groups` in RSpec 4 (and will
43
+ # have no way to turn it off -- the option exists only for backwards
44
+ # compatibility in RSpec 3). It causes shared context metadata to be
45
+ # inherited by the metadata hash of host groups and examples, rather than
46
+ # triggering implicit auto-inclusion in groups with matching metadata.
47
+ config.shared_context_metadata_behavior = :apply_to_host_groups
48
+
49
+ # The settings below are suggested to provide a good initial experience
50
+ # with RSpec, but feel free to customize to your heart's content.
51
+ # # This allows you to limit a spec run to individual examples or groups
52
+ # # you care about by tagging them with `:focus` metadata. When nothing
53
+ # # is tagged with `:focus`, all examples get run. RSpec also provides
54
+ # # aliases for `it`, `describe`, and `context` that include `:focus`
55
+ # # metadata: `fit`, `fdescribe` and `fcontext`, respectively.
56
+ # config.filter_run_when_matching :focus
57
+ #
58
+ # # Allows RSpec to persist some state between runs in order to support
59
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
60
+ # # you configure your source control system to ignore this file.
61
+ # config.example_status_persistence_file_path = "spec/examples.txt"
62
+ #
63
+ # # Limits the available syntax to the non-monkey patched syntax that is
64
+ # # recommended. For more details, see:
65
+ # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
66
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
67
+ # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
68
+ # config.disable_monkey_patching!
69
+ #
70
+ # # Many RSpec users commonly either run the entire suite or an individual
71
+ # # file, and it's useful to allow more verbose output when running an
72
+ # # individual spec file.
73
+ # if config.files_to_run.one?
74
+ # # Use the documentation formatter for detailed output,
75
+ # # unless a formatter has already been configured
76
+ # # (e.g. via a command-line flag).
77
+ # config.default_formatter = "doc"
78
+ # end
79
+ #
80
+ # # Print the 10 slowest examples and example groups at the
81
+ # # end of the spec run, to help surface which specs are running
82
+ # # particularly slow.
83
+ # config.profile_examples = 10
84
+ #
85
+ # # Run specs in random order to surface order dependencies. If you find an
86
+ # # order dependency and want to debug it, you can fix the order by providing
87
+ # # the seed, which is printed after each run.
88
+ # # --seed 1234
89
+ # config.order = :random
90
+ #
91
+ # # Seed global randomization in this process using the `--seed` CLI option.
92
+ # # Setting this allows you to use `--seed` to deterministically reproduce
93
+ # # test failures related to randomization by passing the same `--seed` value
94
+ # # as the one that triggered the failure.
95
+ # Kernel.srand config.seed
96
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'json'
4
+ require 'ice_nine/core_ext/object'
5
+
6
+ module PeopleStats
7
+ def people_stats
8
+ path = Rails.root.join('spec', 'fixtures', 'files', 'people_stats.json')
9
+ @people_stats ||= File.open(path).read.deep_freeze
10
+ end
11
+
12
+ def people_stats_json
13
+ @people_stats_json ||= JSON.parse(people_stats).deep_freeze
14
+ end
15
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails_helper'
4
+
5
+ describe 'root', type: :system do
6
+ include PeopleStats
7
+
8
+ let(:file) { people_stats }
9
+
10
+ before do
11
+ driven_by :selenium_chrome_headless
12
+ stub_request(:get, 'http://enter_real_uri_here.stub/').to_return(body: file)
13
+ end
14
+
15
+ it 'visit root' do
16
+ get root_url
17
+ assert_response :success
18
+ end
19
+
20
+ it 'not found' do
21
+ get root_url, params: { sub_theme_ids: [1984] }
22
+ assert_response :not_found
23
+ end
24
+
25
+ it 'find only one' do
26
+ get root_url, params: { sub_theme_ids: [1] }
27
+ assert_response :success
28
+ expect(JSON.parse(response.body).map { |a| a['id'] }).to eq [1]
29
+ end
30
+ end
File without changes
File without changes
data/lib/shrek/runner.rb CHANGED
@@ -16,7 +16,7 @@ module Shrek
16
16
  private
17
17
 
18
18
  def chain
19
- layers.reverse.inject(EMPTY_RETURN) { |inner, outer| outer.new(inner) }
19
+ layers.reverse.inject(self_return) { |inner, outer| outer.new(inner) }
20
20
  end
21
21
 
22
22
  def parse_layers!(*layers)
@@ -24,5 +24,9 @@ module Shrek
24
24
  # to add registry?
25
25
  @layers = layers
26
26
  end
27
+
28
+ def self_return
29
+ options[:self_return] || EMPTY_RETURN
30
+ end
27
31
  end
28
32
  end
data/lib/shrek/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Shrek
4
- VERSION = '0.2.1'
4
+ VERSION = '0.2.2'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shrek
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kvokka
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-04-01 00:00:00.000000000 Z
11
+ date: 2018-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -158,6 +158,92 @@ files:
158
158
  - Rakefile
159
159
  - bin/console
160
160
  - bin/setup
161
+ - examples/tree_pruning/.gitignore
162
+ - examples/tree_pruning/.rspec
163
+ - examples/tree_pruning/.rubocop.yml
164
+ - examples/tree_pruning/.ruby-version
165
+ - examples/tree_pruning/Gemfile
166
+ - examples/tree_pruning/README.md
167
+ - examples/tree_pruning/Rakefile
168
+ - examples/tree_pruning/app/assets/config/manifest.js
169
+ - examples/tree_pruning/app/assets/images/.keep
170
+ - examples/tree_pruning/app/assets/javascripts/application.js
171
+ - examples/tree_pruning/app/assets/javascripts/cable.js
172
+ - examples/tree_pruning/app/assets/javascripts/channels/.keep
173
+ - examples/tree_pruning/app/assets/stylesheets/application.css
174
+ - examples/tree_pruning/app/channels/application_cable/channel.rb
175
+ - examples/tree_pruning/app/channels/application_cable/connection.rb
176
+ - examples/tree_pruning/app/controllers/application_controller.rb
177
+ - examples/tree_pruning/app/controllers/concerns/.keep
178
+ - examples/tree_pruning/app/controllers/tree_controller.rb
179
+ - examples/tree_pruning/app/helpers/application_helper.rb
180
+ - examples/tree_pruning/app/jobs/application_job.rb
181
+ - examples/tree_pruning/app/lib/layers/external_fetcher.rb
182
+ - examples/tree_pruning/app/lib/layers/parser.rb
183
+ - examples/tree_pruning/app/lib/layers/selector.rb
184
+ - examples/tree_pruning/app/lib/statistics_processor.rb
185
+ - examples/tree_pruning/app/mailers/application_mailer.rb
186
+ - examples/tree_pruning/app/models/application_record.rb
187
+ - examples/tree_pruning/app/models/concerns/.keep
188
+ - examples/tree_pruning/app/views/layouts/application.html.erb
189
+ - examples/tree_pruning/app/views/layouts/mailer.html.erb
190
+ - examples/tree_pruning/app/views/layouts/mailer.text.erb
191
+ - examples/tree_pruning/bin/bundle
192
+ - examples/tree_pruning/bin/rails
193
+ - examples/tree_pruning/bin/rake
194
+ - examples/tree_pruning/bin/setup
195
+ - examples/tree_pruning/bin/spring
196
+ - examples/tree_pruning/bin/update
197
+ - examples/tree_pruning/bin/yarn
198
+ - examples/tree_pruning/config.ru
199
+ - examples/tree_pruning/config/application.rb
200
+ - examples/tree_pruning/config/boot.rb
201
+ - examples/tree_pruning/config/cable.yml
202
+ - examples/tree_pruning/config/credentials.yml.enc
203
+ - examples/tree_pruning/config/database.yml
204
+ - examples/tree_pruning/config/environment.rb
205
+ - examples/tree_pruning/config/environments/development.rb
206
+ - examples/tree_pruning/config/environments/production.rb
207
+ - examples/tree_pruning/config/environments/test.rb
208
+ - examples/tree_pruning/config/initializers/application_controller_renderer.rb
209
+ - examples/tree_pruning/config/initializers/assets.rb
210
+ - examples/tree_pruning/config/initializers/backtrace_silencers.rb
211
+ - examples/tree_pruning/config/initializers/content_security_policy.rb
212
+ - examples/tree_pruning/config/initializers/cookies_serializer.rb
213
+ - examples/tree_pruning/config/initializers/filter_parameter_logging.rb
214
+ - examples/tree_pruning/config/initializers/inflections.rb
215
+ - examples/tree_pruning/config/initializers/mime_types.rb
216
+ - examples/tree_pruning/config/initializers/wrap_parameters.rb
217
+ - examples/tree_pruning/config/locales/en.yml
218
+ - examples/tree_pruning/config/puma.rb
219
+ - examples/tree_pruning/config/routes.rb
220
+ - examples/tree_pruning/config/spring.rb
221
+ - examples/tree_pruning/config/storage.yml
222
+ - examples/tree_pruning/db/seeds.rb
223
+ - examples/tree_pruning/lib/assets/.keep
224
+ - examples/tree_pruning/lib/tasks/.keep
225
+ - examples/tree_pruning/log/.keep
226
+ - examples/tree_pruning/package.json
227
+ - examples/tree_pruning/public/404.html
228
+ - examples/tree_pruning/public/422.html
229
+ - examples/tree_pruning/public/500.html
230
+ - examples/tree_pruning/public/apple-touch-icon-precomposed.png
231
+ - examples/tree_pruning/public/apple-touch-icon.png
232
+ - examples/tree_pruning/public/favicon.ico
233
+ - examples/tree_pruning/public/robots.txt
234
+ - examples/tree_pruning/spec/fixtures/.keep
235
+ - examples/tree_pruning/spec/fixtures/files/.keep
236
+ - examples/tree_pruning/spec/fixtures/files/people_stats.json
237
+ - examples/tree_pruning/spec/lib/layers/external_fetcher_spec.rb
238
+ - examples/tree_pruning/spec/lib/layers/parser_spec.rb
239
+ - examples/tree_pruning/spec/lib/layers/selector_spec.rb
240
+ - examples/tree_pruning/spec/lib/statistics_processor_spec.rb
241
+ - examples/tree_pruning/spec/rails_helper.rb
242
+ - examples/tree_pruning/spec/spec_helper.rb
243
+ - examples/tree_pruning/spec/support/people_stats.rb
244
+ - examples/tree_pruning/spec/system/root_spec.rb
245
+ - examples/tree_pruning/tmp/.keep
246
+ - examples/tree_pruning/vendor/.keep
161
247
  - lib/shrek.rb
162
248
  - lib/shrek/layers.rb
163
249
  - lib/shrek/runner.rb