Giter Site home page Giter Site logo

Comments (8)

obfuscoder avatar obfuscoder commented on May 17, 2024

I could work around the issue by adding a dependency to rack in the root folder Gemfile.

from rubocop-rails.

koic avatar koic commented on May 17, 2024

PR #5707 is related this issue.

from rubocop-rails.

yoshixi avatar yoshixi commented on May 17, 2024

I have same error

$ rubocop -d


For /Users/yoshixj/.ghq/github.com/yoshixj/test_project: configuration from /Users/yoshixj/.ghq/github.com/yoshixj/test_project/.rubocop.yml
Default configuration from /Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/config/default.yml
Inheriting configuration from /Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/config/enabled.yml
Inheriting configuration from /Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/config/disabled.yml
Inspecting 4 files
Scanning /Users/yoshixj/.ghq/github.com/yoshixj/test_project/app/controllers/test_controller.rb
An error occurred while Rails/HttpStatus cop was inspecting /Users/yoshixj/.ghq/github.com/yoshixj/test_project/app/controllers/test_controller.rb:12:12.
uninitialized constant Rack
Did you mean?  Racc
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/rails/http_status.rb:136:in `custom_http_status_code?'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/rails/http_status.rb:109:in `offensive?'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/rails/http_status.rb:61:in `block in on_send'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/rails/http_status.rb:46:in `http_status'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/rails/http_status.rb:56:in `on_send'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:58:in `block (2 levels) in trigger_responding_cops'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:106:in `with_cop_error_handling'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:57:in `block in trigger_responding_cops'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:56:in `each'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:56:in `trigger_responding_cops'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:34:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:137:in `on_if'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `block in on_begin'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `each'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `on_begin'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:100:in `on_def'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `block in on_begin'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `each'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:50:in `on_begin'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:92:in `on_class'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:150:in `on_while'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:150:in `on_while'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:150:in `on_while'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/ast/traversal.rb:13:in `walk'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/commissioner.rb:46:in `investigate'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/team.rb:115:in `investigate'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/team.rb:103:in `offenses'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cop/team.rb:44:in `inspect_file'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:269:in `inspect_file'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:216:in `block in do_inspection_loop'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:248:in `block in iterate_until_no_changes'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:241:in `loop'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:241:in `iterate_until_no_changes'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:212:in `do_inspection_loop'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:115:in `block in file_offenses'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:133:in `file_offense_cache'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:113:in `file_offenses'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:101:in `process_file'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:78:in `block in each_inspected_file'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:75:in `each'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:75:in `reduce'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:75:in `each_inspected_file'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:67:in `inspect_files'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/runner.rb:39:in `run'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cli.rb:157:in `execute_runner'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cli.rb:85:in `execute_runners'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/lib/rubocop/cli.rb:41:in `run'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/exe/rubocop:13:in `block in <top (required)>'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/2.4.0/benchmark.rb:308:in `realtime'
/Users/yoshixj/.rbenv/versions/2.4.1/lib/ruby/gems/2.4.0/gems/rubocop-0.59.2/exe/rubocop:12:in `<top (required)>'
/Users/yoshixj/.rbenv/versions/2.4.1/bin/rubocop:22:in `load'
/Users/yoshixj/.rbenv/versions/2.4.1/bin/rubocop:22:in `<main>'
.Scanning /Users/yoshixj/.ghq/github.com/yoshixj/test_project/config/routes.rb
CScanning /Users/yoshixj/.ghq/github.com/yoshixj/test_project/spec/controllers/test_controller_spec.rb
.Scanning /Users/yoshixj/.ghq/github.com/yoshixj/test_project/spec/controllers/test2_controller_spec.rb
.

Offenses:

config/routes.rb:5:1: C: Metrics/BlockLength: Block has too many lines. [98/25]
Rails.application.routes.draw do ...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
config/routes.rb:13:3: C: Metrics/BlockLength: Block has too many lines. [81/25]
  scope path: '/api', as: :api do ...
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
config/routes.rb:19:5: C: Metrics/BlockLength: Block has too many lines. [75/25]
    scope :v1 do ...
    ^^^^^^^^^^^^

4 files inspected, 3 offenses detected

1 error occurred:
An error occurred while Rails/HttpStatus cop was inspecting /Users/yoshixj/.ghq/github.com/yoshixj/test_project/app/controllers/test_controller.rb:12:12.
Errors are usually caused by RuboCop bugs.
Please, report your problems to RuboCop's issue tracker.
https://github.com/rubocop-hq/rubocop/issues

Mention the following information in the issue report:
0.59.2 (using Parser 2.5.1.0, running on ruby 2.4.1 x86_64-darwin17)
Finished in 0.3338109999895096 seconds

from rubocop-rails.

QuailAndQuasar avatar QuailAndQuasar commented on May 17, 2024

The closed issue seems to have a pending commit waiting to be merged.

rubocop/rubocop@84383d0

from rubocop-rails.

MrAtheist avatar MrAtheist commented on May 17, 2024

hmm any updates on this?

An error occurred while Rails/HttpStatus cop was inspecting /root/project/spec/cypress/cypress_controller.rb:12:6.
uninitialized constant Rack
Did you mean?  Racc
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/rails/http_status.rb:136:in `custom_http_status_code?'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/rails/http_status.rb:109:in `offensive?'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/rails/http_status.rb:61:in `block in on_send'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/rails/http_status.rb:46:in `http_status'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/rails/http_status.rb:56:in `on_send'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:58:in `block (2 levels) in trigger_responding_cops'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:106:in `with_cop_error_handling'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:57:in `block in trigger_responding_cops'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:56:in `each'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:56:in `trigger_responding_cops'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:34:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `block in on_begin'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `each'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `on_begin'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:100:in `on_def'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `block in on_begin'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `each'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:50:in `on_begin'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:92:in `on_class'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:150:in `on_while'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:35:in `block (2 levels) in <class:Commissioner>'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/ast/traversal.rb:13:in `walk'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/commissioner.rb:46:in `investigate'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/team.rb:116:in `investigate'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/team.rb:104:in `offenses'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cop/team.rb:44:in `inspect_file'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:280:in `inspect_file'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:227:in `block in do_inspection_loop'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:259:in `block in iterate_until_no_changes'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:252:in `loop'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:252:in `iterate_until_no_changes'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:223:in `do_inspection_loop'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:126:in `block in file_offenses'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:144:in `file_offense_cache'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:124:in `file_offenses'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:489:in `call_with_index'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:458:in `process_incoming_jobs'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:440:in `block in worker'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:431:in `fork'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:431:in `worker'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:422:in `block in create_workers'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:421:in `each'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:421:in `each_with_index'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:421:in `create_workers'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:361:in `work_in_processes'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:267:in `map'
/usr/local/bundle/gems/parallel-1.13.0/lib/parallel.rb:217:in `each'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:62:in `warm_cache'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/runner.rb:47:in `run'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cli.rb:174:in `execute_runner'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cli.rb:75:in `execute_runners'
/usr/local/bundle/gems/rubocop-0.63.1/lib/rubocop/cli.rb:47:in `run'
/usr/local/bundle/gems/rubocop-0.63.1/exe/rubocop:13:in `block in <top (required)>'
/usr/local/lib/ruby/2.5.0/benchmark.rb:308:in `realtime'
/usr/local/bundle/gems/rubocop-0.63.1/exe/rubocop:12:in `<top (required)>'
/usr/local/bundle/bin/rubocop:23:in `load'
/usr/local/bundle/bin/rubocop:23:in `<main>

0.63.1 (using Parser 2.6.0.0, running on ruby 2.5.1 x86_64-linux)
Exited with code 123

from rubocop-rails.

koic avatar koic commented on May 17, 2024

I transferred this issue to RuboCop Rails repo from RuboCop Core repo.

from rubocop-rails.

franzliedke avatar franzliedke commented on May 17, 2024

Experiencing this, too, because I am using a globally-installed rubocop in a Docker container. Shouldn't rack be a dependency of rubocop-rails if you're using it like that?

from rubocop-rails.

koic avatar koic commented on May 17, 2024

I think this issue has been solved by #36.

from rubocop-rails.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.