ellen 0.0.2 → 0.0.3
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/CHANGELOG.md +5 -2
- data/README.md +3 -0
- data/lib/ellen/adapters/base.rb +18 -0
- data/lib/ellen/env.rb +36 -0
- data/lib/ellen/robot.rb +5 -0
- data/lib/ellen/version.rb +1 -1
- data/lib/ellen.rb +1 -0
- metadata +3 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 29ad3aa6bd8349d58077ff020f9bea37e7fca57b
         | 
| 4 | 
            +
              data.tar.gz: b37cbe10c8c7878b2b3a7b036b64b4307128c1c6
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 6ec91fd6d9acf7d972d68d4493f5cfb058671361a47e6eee34b7f909d2c489c546b4691b195a619f15f851cb2e03444eb9c4152bfebb7532123c5ab0299892dc
         | 
| 7 | 
            +
              data.tar.gz: ee94c91e91fc28f5188810ad31b35947c239f32445119dd7c91173976e05bbb005fcfbabfa3f95a3d674dd1b37bd4c4111ad6e981a9d94ddbfecf6ffd5028191
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    
    
        data/lib/ellen/adapters/base.rb
    CHANGED
    
    | @@ -16,6 +16,18 @@ module Ellen | |
| 16 16 | 
             
                    def inherited(child)
         | 
| 17 17 | 
             
                      Ellen.adapters[child.name.split("::").last.underscore] = child
         | 
| 18 18 | 
             
                    end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    def env(key, description, options = {})
         | 
| 21 | 
            +
                      envs << Env.new(key, description, options)
         | 
| 22 | 
            +
                    end
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                    def envs
         | 
| 25 | 
            +
                      @envs ||= []
         | 
| 26 | 
            +
                    end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    def usage
         | 
| 29 | 
            +
                      envs.map(&:to_usage).join("\n")
         | 
| 30 | 
            +
                    end
         | 
| 19 31 | 
             
                  end
         | 
| 20 32 |  | 
| 21 33 | 
             
                  attr_reader :robot, :options
         | 
| @@ -28,6 +40,12 @@ module Ellen | |
| 28 40 | 
             
                  def say(body, options = {})
         | 
| 29 41 | 
             
                    Ellen.logger.info("Not implemented #{self.class}##{__method__} was called")
         | 
| 30 42 | 
             
                  end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def validate
         | 
| 45 | 
            +
                    self.class.envs.each(&:validate)
         | 
| 46 | 
            +
                  rescue Env::MissingRequiredKeyError => exception
         | 
| 47 | 
            +
                    Ellen.die("#{exception}\n#{self.class.usage}")
         | 
| 48 | 
            +
                  end
         | 
| 31 49 | 
             
                end
         | 
| 32 50 | 
             
              end
         | 
| 33 51 | 
             
            end
         | 
    
        data/lib/ellen/env.rb
    ADDED
    
    | @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            module Ellen
         | 
| 2 | 
            +
              class Env
         | 
| 3 | 
            +
                attr_reader :key, :description, :options
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                def initialize(key, description, options = {})
         | 
| 6 | 
            +
                  @key = key.to_s
         | 
| 7 | 
            +
                  @description = description
         | 
| 8 | 
            +
                  @options = options
         | 
| 9 | 
            +
                end
         | 
| 10 | 
            +
             | 
| 11 | 
            +
                def validate
         | 
| 12 | 
            +
                  error if required? && missing?
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                def to_usage
         | 
| 16 | 
            +
                  "    %-20s - %s" % [key, description]
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
                private
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                def required?
         | 
| 22 | 
            +
                  !options[:optional]
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                def missing?
         | 
| 26 | 
            +
                  !ENV[key]
         | 
| 27 | 
            +
                end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                def error
         | 
| 30 | 
            +
                  raise MissingRequiredKeyError, %<ENV["#{key}"] is required but missing>
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                class MissingRequiredKeyError < StandardError
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
              end
         | 
| 36 | 
            +
            end
         | 
    
        data/lib/ellen/robot.rb
    CHANGED
    
    | @@ -13,6 +13,7 @@ module Ellen | |
| 13 13 | 
             
                def run
         | 
| 14 14 | 
             
                  bundle
         | 
| 15 15 | 
             
                  setup
         | 
| 16 | 
            +
                  validate
         | 
| 16 17 | 
             
                  adapt
         | 
| 17 18 | 
             
                end
         | 
| 18 19 |  | 
| @@ -46,5 +47,9 @@ module Ellen | |
| 46 47 | 
             
                  Ellen.handlers.map {|handler_class| handler_class.new(self) }
         | 
| 47 48 | 
             
                end
         | 
| 48 49 | 
             
                memoize :handlers
         | 
| 50 | 
            +
             | 
| 51 | 
            +
                def validate
         | 
| 52 | 
            +
                  adapter.validate
         | 
| 53 | 
            +
                end
         | 
| 49 54 | 
             
              end
         | 
| 50 55 | 
             
            end
         | 
    
        data/lib/ellen/version.rb
    CHANGED
    
    
    
        data/lib/ellen.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ellen
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ryo Nakamura
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-04- | 
| 11 | 
            +
            date: 2014-04-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activesupport
         | 
| @@ -133,6 +133,7 @@ files: | |
| 133 133 | 
             
            - lib/ellen/commands/base.rb
         | 
| 134 134 | 
             
            - lib/ellen/commands/generate.rb
         | 
| 135 135 | 
             
            - lib/ellen/commands/run.rb
         | 
| 136 | 
            +
            - lib/ellen/env.rb
         | 
| 136 137 | 
             
            - lib/ellen/handlers/base.rb
         | 
| 137 138 | 
             
            - lib/ellen/handlers/help.rb
         | 
| 138 139 | 
             
            - lib/ellen/logger.rb
         |