anyway_config 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +15 -4
- data/Gemfile +3 -0
- data/README.md +45 -11
- data/anyway_config.gemspec +3 -6
- data/gemfiles/rails32.gemfile +7 -0
- data/lib/anyway/config.rb +26 -14
- data/lib/anyway/version.rb +2 -2
- data/spec/config_spec.rb +16 -1
- data/spec/dummy/config/environments/test.rb +1 -1
- data/spec/dummy/config/secrets.yml +3 -0
- metadata +6 -47
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 40e4e0dd7f4d5e1fb19d83de0755be5f0054ac2f
         | 
| 4 | 
            +
              data.tar.gz: 555132629ca863a88d84ba53ee9cfd6ce02a2fad
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 31e46f769ef2a2e550f195232c0fe76e127fc567d56de1c6a1d14e6c0f77e99a05c6f956746ca96a0647ad3edfd74e1d0f5e2301ab1c4f5af9dcc8ce119c939f
         | 
| 7 | 
            +
              data.tar.gz: f19f0adfe0d2827c14c4ff83b718ae06f13a2614103dcc4e86cc5cfc5de91dbf4be5f36d885ea57f5cb1a862eca04a60f6e8eed8297eda368bfe2103a368eeb0
         | 
    
        data/.travis.yml
    CHANGED
    
    | @@ -1,20 +1,31 @@ | |
| 1 1 | 
             
            language: ruby
         | 
| 2 2 | 
             
            cache: bundler
         | 
| 3 3 | 
             
            rvm:
         | 
| 4 | 
            -
              - 2. | 
| 5 | 
            -
              - 2.1
         | 
| 4 | 
            +
              - 2.2
         | 
| 6 5 |  | 
| 7 | 
            -
             | 
| 8 | 
            -
               | 
| 6 | 
            +
            notifications:
         | 
| 7 | 
            +
              email: false
         | 
| 9 8 |  | 
| 10 9 | 
             
            matrix:
         | 
| 10 | 
            +
              allow_failures:
         | 
| 11 | 
            +
                - rvm: :jruby
         | 
| 12 | 
            +
             | 
| 11 13 | 
             
              include:
         | 
| 14 | 
            +
                - rvm: 1.9.3
         | 
| 15 | 
            +
                  gemfile: gemfiles/rails32.gemfile
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                - rvm: jruby
         | 
| 18 | 
            +
                  gemfile: gemfiles/rails32.gemfile
         | 
| 19 | 
            +
             | 
| 12 20 | 
             
                - rvm: 2.0.0
         | 
| 13 21 | 
             
                  gemfile: gemfiles/rails40.gemfile
         | 
| 14 22 |  | 
| 15 23 | 
             
                - rvm: 2.1
         | 
| 16 24 | 
             
                  gemfile: gemfiles/rails40.gemfile
         | 
| 17 25 |  | 
| 26 | 
            +
                - rvm: jruby
         | 
| 27 | 
            +
                  gemfile: gemfiles/rails41.gemfile
         | 
| 28 | 
            +
             | 
| 18 29 | 
             
                - rvm: 2.1
         | 
| 19 30 | 
             
                  gemfile: gemfiles/rails41.gemfile
         | 
| 20 31 |  | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -2,11 +2,13 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            # Anyway Config
         | 
| 4 4 |  | 
| 5 | 
            -
            Rails plugin configuration using any source: YAML, _secrets_, environment.
         | 
| 5 | 
            +
            Rails plugin/application configuration using any source: YAML, _secrets_, environment.
         | 
| 6 6 |  | 
| 7 | 
            -
            Requires Rails 4.
         | 
| 8 7 |  | 
| 9 | 
            -
             | 
| 8 | 
            +
            Apps using Anyway Config: 
         | 
| 9 | 
            +
            - [influxer](https://github.com/palkan/influxer).
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            ## Using with Gem
         | 
| 10 12 |  | 
| 11 13 | 
             
            Configure your gemspec
         | 
| 12 14 |  | 
| @@ -26,13 +28,12 @@ Or install it yourself as: | |
| 26 28 |  | 
| 27 29 | 
             
                $ gem install anyway_config
         | 
| 28 30 |  | 
| 29 | 
            -
             | 
| 30 | 
            -
             | 
| 31 | 
            -
            ### Basic
         | 
| 31 | 
            +
            ### Usage
         | 
| 32 32 |  | 
| 33 33 | 
             
            Create configuration class:
         | 
| 34 34 |  | 
| 35 35 | 
             
            ```ruby
         | 
| 36 | 
            +
            require 'anyway'
         | 
| 36 37 | 
             
            module MyCoolGem
         | 
| 37 38 | 
             
              class Config < Anyway::Config
         | 
| 38 39 | 
             
                attr_config user: 'root', password: 'root', host: 'localhost'
         | 
| @@ -61,7 +62,44 @@ module MyCoolGem | |
| 61 62 | 
             
            end
         | 
| 62 63 | 
             
            ```
         | 
| 63 64 |  | 
| 64 | 
            -
            ###  | 
| 65 | 
            +
            ### Config clear and reload
         | 
| 66 | 
            +
             | 
| 67 | 
            +
            You can use `clear` and `reload` functions on your config (which do exactly what they state).
         | 
| 68 | 
            +
             | 
| 69 | 
            +
             | 
| 70 | 
            +
            ## Using with Rails app
         | 
| 71 | 
            +
             | 
| 72 | 
            +
            In your Gemfile
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            ```ruby
         | 
| 75 | 
            +
            require 'anyway_config', "~>0.2"
         | 
| 76 | 
            +
            ```
         | 
| 77 | 
            +
             | 
| 78 | 
            +
            In your code
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            ```ruby
         | 
| 81 | 
            +
             | 
| 82 | 
            +
            config = Anyway::Config.for(:my_app) # load data from config/my_app.yml, secrets.my_app, ENV["MYAPP_*"]
         | 
| 83 | 
            +
             | 
| 84 | 
            +
            ```
         | 
| 85 | 
            +
             | 
| 86 | 
            +
            ## `Rails.application.config_for` vs `Anyway::Config.for`
         | 
| 87 | 
            +
             | 
| 88 | 
            +
            Rails 4.2 introduces new feature: `Rails.application.config_for`. It looks very similar to 
         | 
| 89 | 
            +
            `Anyway::Config.for`, but there are some differences:
         | 
| 90 | 
            +
             | 
| 91 | 
            +
            | Feature       | Rails         | Anyway  |
         | 
| 92 | 
            +
            | ------------- |:-------------:| -----:|
         | 
| 93 | 
            +
            | load data from `config/app.yml`     | yes | yes |
         | 
| 94 | 
            +
            | load data from `secrets`      | no      |   yes |
         | 
| 95 | 
            +
            | load data from environment | no   |   yes |
         | 
| 96 | 
            +
            | return Hash with indifferent access | no | yes | 
         | 
| 97 | 
            +
            | support ERB within `config/app.yml` | yes | no |
         | 
| 98 | 
            +
            | raise errors if file doesn't exist | yes | no |
         | 
| 99 | 
            +
             | 
| 100 | 
            +
            But the main advantage of Anyway::Config is that it's supported in Rails >= 3.2, Ruby >= 1.9.3.
         | 
| 101 | 
            +
             | 
| 102 | 
            +
            ## How to set env vars
         | 
| 65 103 |  | 
| 66 104 | 
             
            Environmental variables for your config should start with your module name (or config name if any), uppercased and underscore-free.
         | 
| 67 105 |  | 
| @@ -71,10 +109,6 @@ For example, if your module is called "MyCoolGem" then your env var "MYCOOLGEM_P | |
| 71 109 | 
             
            For example, "MYCOOLGEM_OPTIONS__VERBOSE" is transformed to `config.options.verbose`.
         | 
| 72 110 |  | 
| 73 111 |  | 
| 74 | 
            -
            ### Config clear and reload
         | 
| 75 | 
            -
             | 
| 76 | 
            -
            You can use `clear` and `reload` functions on your config (which do exactly what they state).
         | 
| 77 | 
            -
             | 
| 78 112 | 
             
            ## Contributing
         | 
| 79 113 |  | 
| 80 114 | 
             
            1. Fork it
         | 
    
        data/anyway_config.gemspec
    CHANGED
    
    | @@ -9,18 +9,15 @@ Gem::Specification.new do |s| | |
| 9 9 | 
             
              s.authors     = ["Vlad Dem"]
         | 
| 10 10 | 
             
              s.email       = ["dementiev.vm@gmail.com"]
         | 
| 11 11 | 
             
              s.homepage    = "http://github.com/palkan/anyway_config"
         | 
| 12 | 
            -
              s.summary     = "Configuration for Rails plugins"
         | 
| 13 | 
            -
              s.description = "Configuration for Rails plugins"
         | 
| 12 | 
            +
              s.summary     = "Configuration for Rails plugins and applications"
         | 
| 13 | 
            +
              s.description = "Configuration for Rails plugins and applications"
         | 
| 14 14 | 
             
              s.license     = "MIT"
         | 
| 15 15 |  | 
| 16 16 | 
             
              s.files         = `git ls-files`.split($/)
         | 
| 17 17 | 
             
              s.require_paths = ["lib"]
         | 
| 18 | 
            -
              
         | 
| 19 | 
            -
              s.add_dependency 'rails', "~>4"
         | 
| 18 | 
            +
              s.required_ruby_version = '>= 1.9.3'
         | 
| 20 19 |  | 
| 21 | 
            -
              s.add_development_dependency 'sqlite3'
         | 
| 22 20 | 
             
              s.add_development_dependency 'pry'
         | 
| 23 | 
            -
              s.add_development_dependency 'pry-byebug'
         | 
| 24 21 | 
             
              s.add_development_dependency "simplecov", ">= 0.3.8"
         | 
| 25 22 | 
             
              s.add_development_dependency "rspec", "~> 3.0.0"
         | 
| 26 23 | 
             
              s.add_development_dependency "rspec-rails", "~> 3.0.0"
         | 
    
        data/lib/anyway/config.rb
    CHANGED
    
    | @@ -3,7 +3,7 @@ module Anyway | |
| 3 3 | 
             
                class << self
         | 
| 4 4 | 
             
                  attr_reader :defaults, :config_attributes
         | 
| 5 5 |  | 
| 6 | 
            -
                  def attr_config(*args | 
| 6 | 
            +
                  def attr_config(*args,hargs)
         | 
| 7 7 | 
             
                    @defaults = hargs.dup.with_indifferent_access
         | 
| 8 8 | 
             
                    @config_attributes = args+hargs.keys
         | 
| 9 9 | 
             
                    attr_accessor *@config_attributes
         | 
| @@ -14,14 +14,25 @@ module Anyway | |
| 14 14 | 
             
                    @config_name ||= extract_name
         | 
| 15 15 | 
             
                  end
         | 
| 16 16 |  | 
| 17 | 
            +
                  # Load config as Hash by any name
         | 
| 18 | 
            +
                  #
         | 
| 19 | 
            +
                  # Example:
         | 
| 20 | 
            +
                  #   
         | 
| 21 | 
            +
                  #   my_config = Anyway::Config.for(:my_app) 
         | 
| 22 | 
            +
                  #   # will load data from config/my_app.yml, secrets.my_app, ENV["MY_APP_*"] 
         | 
| 23 | 
            +
                  def for(name)
         | 
| 24 | 
            +
                    self.new(name,false).load_from_sources
         | 
| 25 | 
            +
                  end
         | 
| 26 | 
            +
             | 
| 17 27 | 
             
                  private
         | 
| 18 28 | 
             
                    def extract_name
         | 
| 19 29 | 
             
                      self.name[/^(\w+)/].underscore
         | 
| 20 30 | 
             
                    end
         | 
| 21 31 | 
             
                end
         | 
| 22 32 |  | 
| 23 | 
            -
                def initialize
         | 
| 24 | 
            -
                   | 
| 33 | 
            +
                def initialize(config_name=nil, do_load=true)
         | 
| 34 | 
            +
                  @config_name = config_name || self.class.config_name
         | 
| 35 | 
            +
                  load if do_load
         | 
| 25 36 | 
             
                end
         | 
| 26 37 |  | 
| 27 38 | 
             
                def reload
         | 
| @@ -38,27 +49,28 @@ module Anyway | |
| 38 49 | 
             
                end
         | 
| 39 50 |  | 
| 40 51 | 
             
                def load
         | 
| 41 | 
            -
                   | 
| 42 | 
            -
                  config  | 
| 43 | 
            -
             | 
| 52 | 
            +
                  config = load_from_sources self.class.defaults.deep_dup
         | 
| 53 | 
            +
                  config.each do |key, val| 
         | 
| 54 | 
            +
                    self.send("#{key}=",val)
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
                end
         | 
| 44 57 |  | 
| 58 | 
            +
                def load_from_sources(config={}.with_indifferent_access)        
         | 
| 45 59 | 
             
                  # then load from YAML if any
         | 
| 46 | 
            -
                  config_path = Rails.root.join("config","#{config_name}.yml")
         | 
| 60 | 
            +
                  config_path = Rails.root.join("config","#{@config_name}.yml")
         | 
| 47 61 | 
             
                  if File.file? config_path
         | 
| 62 | 
            +
                    require 'yaml'
         | 
| 48 63 | 
             
                    config.deep_merge! (YAML.load_file(config_path)[Rails.env] || {})
         | 
| 49 64 | 
             
                  end
         | 
| 50 65 |  | 
| 51 66 | 
             
                  # then load from Rails secrets
         | 
| 52 | 
            -
                   | 
| 53 | 
            -
                    config.deep_merge! (Rails.application.secrets.send(config_name)||{})
         | 
| 67 | 
            +
                  if Rails.application.respond_to?(:secrets)
         | 
| 68 | 
            +
                    config.deep_merge! (Rails.application.secrets.send(@config_name)||{})
         | 
| 54 69 | 
             
                  end
         | 
| 55 70 |  | 
| 56 71 | 
             
                  # and then load from env
         | 
| 57 | 
            -
                  config.deep_merge! (Anyway.env.send(config_name) || {})
         | 
| 58 | 
            -
             | 
| 59 | 
            -
                  config.each do |key, val| 
         | 
| 60 | 
            -
                    self.send("#{key}=",val)
         | 
| 61 | 
            -
                  end
         | 
| 72 | 
            +
                  config.deep_merge! (Anyway.env.send(@config_name) || {})
         | 
| 73 | 
            +
                  config
         | 
| 62 74 | 
             
                end
         | 
| 63 75 | 
             
              end
         | 
| 64 76 | 
             
            end
         | 
    
        data/lib/anyway/version.rb
    CHANGED
    
    | @@ -1,3 +1,3 @@ | |
| 1 1 | 
             
            module Anyway
         | 
| 2 | 
            -
              VERSION = "0. | 
| 3 | 
            -
            end
         | 
| 2 | 
            +
              VERSION = "0.2.0"
         | 
| 3 | 
            +
            end
         | 
    
        data/spec/config_spec.rb
    CHANGED
    
    | @@ -29,7 +29,7 @@ describe Anyway::Config do | |
| 29 29 | 
             
                    expect(conf.host).to eq "test.host"
         | 
| 30 30 | 
             
                  end
         | 
| 31 31 |  | 
| 32 | 
            -
                   | 
| 32 | 
            +
                  if Rails.application.respond_to?(:secrets)
         | 
| 33 33 | 
             
                    it "should load config from secrets" do
         | 
| 34 34 | 
             
                      expect(conf.user[:name]).to eq "test"
         | 
| 35 35 | 
             
                      expect(conf.user[:password]).to eq "test"   
         | 
| @@ -96,4 +96,19 @@ describe Anyway::Config do | |
| 96 96 | 
             
                  expect(test_conf.test).to eq "test"
         | 
| 97 97 | 
             
                end
         | 
| 98 98 | 
             
              end
         | 
| 99 | 
            +
             | 
| 100 | 
            +
              describe "config for name" do
         | 
| 101 | 
            +
                after(:each) { Anyway.env.clear }
         | 
| 102 | 
            +
                it "should load data by config name" do
         | 
| 103 | 
            +
                  ENV['MYAPP_TEST'] = '1'
         | 
| 104 | 
            +
                  ENV['MYAPP_NAME'] = 'my_app'
         | 
| 105 | 
            +
                  Anyway.env.reload
         | 
| 106 | 
            +
                  data = Anyway::Config.for(:my_app)
         | 
| 107 | 
            +
                  expect(data[:test]).to eq '1'
         | 
| 108 | 
            +
                  expect(data[:name]).to eq 'my_app'
         | 
| 109 | 
            +
                  if Rails.application.respond_to?(:secrets)
         | 
| 110 | 
            +
                    expect(data[:secret]).to eq 'my_secret' 
         | 
| 111 | 
            +
                  end
         | 
| 112 | 
            +
                end
         | 
| 113 | 
            +
              end
         | 
| 99 114 | 
             
            end
         | 
| @@ -13,7 +13,7 @@ Dummy::Application.configure do | |
| 13 13 | 
             
              config.eager_load = false
         | 
| 14 14 |  | 
| 15 15 | 
             
              # Configure static asset server for tests with Cache-Control for performance.
         | 
| 16 | 
            -
              config. | 
| 16 | 
            +
              config.serve_static_files  = true
         | 
| 17 17 | 
             
              config.static_cache_control = 'public, max-age=3600'
         | 
| 18 18 |  | 
| 19 19 | 
             
              # Show full error reports and disable caching.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,43 +1,15 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: anyway_config
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.2.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Vlad Dem
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-01- | 
| 11 | 
            +
            date: 2015-01-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name: rails
         | 
| 15 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            -
                requirements:
         | 
| 17 | 
            -
                - - "~>"
         | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: '4'
         | 
| 20 | 
            -
              type: :runtime
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - "~>"
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: '4'
         | 
| 27 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            -
              name: sqlite3
         | 
| 29 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            -
                requirements:
         | 
| 31 | 
            -
                - - ">="
         | 
| 32 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 33 | 
            -
                    version: '0'
         | 
| 34 | 
            -
              type: :development
         | 
| 35 | 
            -
              prerelease: false
         | 
| 36 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            -
                requirements:
         | 
| 38 | 
            -
                - - ">="
         | 
| 39 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            -
                    version: '0'
         | 
| 41 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 14 | 
             
              name: pry
         | 
| 43 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -52,20 +24,6 @@ dependencies: | |
| 52 24 | 
             
                - - ">="
         | 
| 53 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 26 | 
             
                    version: '0'
         | 
| 55 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 56 | 
            -
              name: pry-byebug
         | 
| 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 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 28 | 
             
              name: simplecov
         | 
| 71 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -108,7 +66,7 @@ dependencies: | |
| 108 66 | 
             
                - - "~>"
         | 
| 109 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 68 | 
             
                    version: 3.0.0
         | 
| 111 | 
            -
            description: Configuration for Rails plugins
         | 
| 69 | 
            +
            description: Configuration for Rails plugins and applications
         | 
| 112 70 | 
             
            email:
         | 
| 113 71 | 
             
            - dementiev.vm@gmail.com
         | 
| 114 72 | 
             
            executables: []
         | 
| @@ -122,6 +80,7 @@ files: | |
| 122 80 | 
             
            - README.md
         | 
| 123 81 | 
             
            - Rakefile
         | 
| 124 82 | 
             
            - anyway_config.gemspec
         | 
| 83 | 
            +
            - gemfiles/rails32.gemfile
         | 
| 125 84 | 
             
            - gemfiles/rails40.gemfile
         | 
| 126 85 | 
             
            - gemfiles/rails41.gemfile
         | 
| 127 86 | 
             
            - gemfiles/rails42.gemfile
         | 
| @@ -189,7 +148,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 189 148 | 
             
              requirements:
         | 
| 190 149 | 
             
              - - ">="
         | 
| 191 150 | 
             
                - !ruby/object:Gem::Version
         | 
| 192 | 
            -
                  version:  | 
| 151 | 
            +
                  version: 1.9.3
         | 
| 193 152 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 194 153 | 
             
              requirements:
         | 
| 195 154 | 
             
              - - ">="
         | 
| @@ -200,5 +159,5 @@ rubyforge_project: | |
| 200 159 | 
             
            rubygems_version: 2.2.2
         | 
| 201 160 | 
             
            signing_key: 
         | 
| 202 161 | 
             
            specification_version: 4
         | 
| 203 | 
            -
            summary: Configuration for Rails plugins
         | 
| 162 | 
            +
            summary: Configuration for Rails plugins and applications
         | 
| 204 163 | 
             
            test_files: []
         |