cupcakinator 1.0.1 → 1.1.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/.ruby-version +1 -1
- data/Gemfile +6 -3
- data/Guardfile +1 -0
- data/lib/cupcakinator.rb +1 -0
- data/lib/cupcakinator/base.rb +18 -1
- data/lib/cupcakinator/version.rb +1 -1
- data/spec/cupcakinator/base_spec.rb +13 -0
- data/spec/el_config.yml +4 -1
- metadata +12 -12
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: ef9ce571b53c125b293184143541e24ec299eadd
         | 
| 4 | 
            +
              data.tar.gz: 6d108263870627cbdd02e5ae943112a907cf3997
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: baf0a1919f69fb660b916cc70f719129f2131cb86bb249404fb51082c7110e7d1b49dd4ab190eb20d5d439f8bce3ba8684cdf7faee5a72dad462caf9c7bf2e54
         | 
| 7 | 
            +
              data.tar.gz: 916184623bb21a1186488ee94408fe18ae53643e1d5dc545b63908d99cc319957168070656f17c1ff9718c8c6931a6eb1701f6cccf8c1dcd6833d42bd0a659cd
         | 
    
        data/.ruby-version
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            2. | 
| 1 | 
            +
            2.1.0
         | 
    
        data/Gemfile
    CHANGED
    
    | @@ -10,12 +10,15 @@ gem 'json', '~> 1.8' | |
| 10 10 | 
             
            group :development, :test do
         | 
| 11 11 | 
             
              gem 'debugger'
         | 
| 12 12 | 
             
              gem 'guard'
         | 
| 13 | 
            +
              gem 'guard-bundler'
         | 
| 13 14 | 
             
              gem 'guard-rspec'
         | 
| 14 15 | 
             
              gem 'guard-spork'
         | 
| 15 | 
            -
              gem 'rake'
         | 
| 16 | 
            -
              gem 'rb-readline'
         | 
| 17 16 | 
             
              gem 'redcarpet'
         | 
| 17 | 
            +
              gem 'yard'
         | 
| 18 | 
            +
            end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            group :development, :test, :ci do
         | 
| 21 | 
            +
              gem 'rake'
         | 
| 18 22 | 
             
              gem 'rspec'
         | 
| 19 23 | 
             
              gem 'simplecov', require: false
         | 
| 20 | 
            -
              gem 'yard'
         | 
| 21 24 | 
             
            end
         | 
    
        data/Guardfile
    CHANGED
    
    
    
        data/lib/cupcakinator.rb
    CHANGED
    
    | @@ -24,6 +24,7 @@ module Cupcakinator | |
| 24 24 |  | 
| 25 25 | 
             
              unless @_i18n_initialized_for_cupcakinator
         | 
| 26 26 | 
             
                locale_file = File.expand_path(File.join(File.dirname(__FILE__), '../config/locales.yml'))
         | 
| 27 | 
            +
                I18n.enforce_available_locales = false
         | 
| 27 28 | 
             
                I18n.load_path << locale_file
         | 
| 28 29 | 
             
                @_i18n_initialized_for_cupcakinator = true
         | 
| 29 30 | 
             
              end
         | 
    
        data/lib/cupcakinator/base.rb
    CHANGED
    
    | @@ -27,6 +27,7 @@ module Cupcakinator | |
| 27 27 | 
             
                # @option options.last [Hash] :dir The directory where the file can be found
         | 
| 28 28 | 
             
                # @option options.last [Hash] :file The configuration filename
         | 
| 29 29 | 
             
                # @option options.last [Hash] :method The method used to access the configuration options
         | 
| 30 | 
            +
                # @option options.last [Hash] :root_key A key in the top level of the config file that will become the base
         | 
| 30 31 | 
             
                # @example  Default usage - Foo will load ./config/config.yml into a method named 'config'
         | 
| 31 32 | 
             
                #   class Foo
         | 
| 32 33 | 
             
                #     include cupcakinator
         | 
| @@ -55,6 +56,17 @@ module Cupcakinator | |
| 55 56 | 
             
                #   >> puts Foo.new.config
         | 
| 56 57 | 
             
                #   { :foo => 'bar' }
         | 
| 57 58 | 
             
                #
         | 
| 59 | 
            +
                # @example  with Rails - Foo will load config/foo_config.yml relative to Rails root into a method named 'config'
         | 
| 60 | 
            +
                #           beginning at the root_key based on the Rails.env
         | 
| 61 | 
            +
                #   class Foo
         | 
| 62 | 
            +
                #     include cupcakinator
         | 
| 63 | 
            +
                #     cupcakinate dir: Rails.root.join('config'), file: 'foo_config.yml', root_key: Rails.env
         | 
| 64 | 
            +
                #   end
         | 
| 65 | 
            +
                #   >> puts Foo.config
         | 
| 66 | 
            +
                #   { :foo => 'bar' }
         | 
| 67 | 
            +
                #   >> puts Foo.new.config
         | 
| 68 | 
            +
                #   { :foo => 'bar' }
         | 
| 69 | 
            +
                #
         | 
| 58 70 | 
             
                def cupcakinate(*options)
         | 
| 59 71 | 
             
                  if !options.empty?
         | 
| 60 72 | 
             
                    default_options = _cupcakinator_options
         | 
| @@ -82,7 +94,12 @@ module Cupcakinator | |
| 82 94 | 
             
                def load_cupcakinator_config
         | 
| 83 95 | 
             
                  filename = File.join(_cupcakinator_options[:dir], _cupcakinator_options[:file])
         | 
| 84 96 | 
             
                  yaml_config = YAML.load_file(filename)
         | 
| 85 | 
            -
                   | 
| 97 | 
            +
                  if _cupcakinator_options.has_key?(:root_key)
         | 
| 98 | 
            +
                    rk = _cupcakinator_options[:root_key]
         | 
| 99 | 
            +
                    @cupcakinator_config = Cupcakinator::Config.new(yaml_config[rk])
         | 
| 100 | 
            +
                  else
         | 
| 101 | 
            +
                    @cupcakinator_config = Cupcakinator::Config.new(yaml_config)
         | 
| 102 | 
            +
                  end
         | 
| 86 103 | 
             
                rescue Errno::ENOENT
         | 
| 87 104 | 
             
                  raise Cupcakinator::ConfigFileNotFoundError.new(filename, _cupcakinator_options)
         | 
| 88 105 | 
             
                rescue Psych::SyntaxError => e
         | 
    
        data/lib/cupcakinator/version.rb
    CHANGED
    
    
| @@ -97,6 +97,19 @@ describe Cupcakinator::Base do | |
| 97 97 | 
             
                  expect{ CupcakinatorBaseSpecBadFile.load_cupcakinator_config }.to raise_error(Cupcakinator::ConfigFileInvalidError)
         | 
| 98 98 | 
             
                end
         | 
| 99 99 |  | 
| 100 | 
            +
                it 'should load the YAML anchored at root_key' do
         | 
| 101 | 
            +
                  class CupcakinatorBaseSpecRootKey
         | 
| 102 | 
            +
                    include Cupcakinator
         | 
| 103 | 
            +
             | 
| 104 | 
            +
                    cupcakinate dir: File.expand_path(File.join(File.dirname(__FILE__), '..')), file: 'el_config.yml', root_key: 'special'
         | 
| 105 | 
            +
                  end
         | 
| 106 | 
            +
             | 
| 107 | 
            +
                  subject = CupcakinatorBaseSpecRootKey.new
         | 
| 108 | 
            +
                  subject.config.has_key?(:special).should be_false
         | 
| 109 | 
            +
                  subject.config.bacon.chunky.should be_false
         | 
| 110 | 
            +
                end
         | 
| 111 | 
            +
             | 
| 112 | 
            +
             | 
| 100 113 | 
             
              end
         | 
| 101 114 |  | 
| 102 115 |  | 
    
        data/spec/el_config.yml
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,40 +1,40 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: cupcakinator
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.0 | 
| 4 | 
            +
              version: 1.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Bryan Taylor
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-02-26 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: hashie
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - ">="
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: 2.0.0
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - ">="
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: 2.0.0
         | 
| 27 | 
            -
            description:  | 
| 27 | 
            +
            description: " Add config from YAML to any class "
         | 
| 28 28 | 
             
            email:
         | 
| 29 29 | 
             
            - bcptaylor@gmail.com
         | 
| 30 30 | 
             
            executables: []
         | 
| 31 31 | 
             
            extensions: []
         | 
| 32 32 | 
             
            extra_rdoc_files: []
         | 
| 33 33 | 
             
            files:
         | 
| 34 | 
            -
            - .gitignore
         | 
| 35 | 
            -
            - .rspec
         | 
| 36 | 
            -
            - .ruby-version
         | 
| 37 | 
            -
            - .travis.yml
         | 
| 34 | 
            +
            - ".gitignore"
         | 
| 35 | 
            +
            - ".rspec"
         | 
| 36 | 
            +
            - ".ruby-version"
         | 
| 37 | 
            +
            - ".travis.yml"
         | 
| 38 38 | 
             
            - Gemfile
         | 
| 39 39 | 
             
            - Guardfile
         | 
| 40 40 | 
             
            - LICENSE
         | 
| @@ -63,17 +63,17 @@ require_paths: | |
| 63 63 | 
             
            - lib
         | 
| 64 64 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
              requirements:
         | 
| 66 | 
            -
              - -  | 
| 66 | 
            +
              - - ">="
         | 
| 67 67 | 
             
                - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                  version: '0'
         | 
| 69 69 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 70 70 | 
             
              requirements:
         | 
| 71 | 
            -
              - -  | 
| 71 | 
            +
              - - ">="
         | 
| 72 72 | 
             
                - !ruby/object:Gem::Version
         | 
| 73 73 | 
             
                  version: '0'
         | 
| 74 74 | 
             
            requirements: []
         | 
| 75 75 | 
             
            rubyforge_project: 
         | 
| 76 | 
            -
            rubygems_version: 2.0 | 
| 76 | 
            +
            rubygems_version: 2.2.0
         | 
| 77 77 | 
             
            signing_key: 
         | 
| 78 78 | 
             
            specification_version: 4
         | 
| 79 79 | 
             
            summary: Easy to add config from YAML to any class
         |