masheri 0.5.6 → 0.6.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.
- data/.gitignore +6 -0
- data/.yardoc/checksums +17 -0
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/Gemfile +22 -0
- data/Gemfile.devtools +55 -0
- data/Gemfile.lock +255 -0
- data/Rakefile +9 -0
- data/VERSION +1 -0
- data/config/devtools.yml +2 -0
- data/config/flay.yml +3 -0
- data/config/flog.yml +2 -0
- data/config/mutant.yml +3 -0
- data/config/reek.yml +103 -0
- data/config/rubocop.yml +58 -0
- data/config/yardstick.yml +2 -0
- data/lib/masheri.rb +2 -1
- data/lib/masheri/key.rb +1 -1
- data/lib/masheri/member.rb +1 -1
- data/lib/masheri/{rest_client → rpc_client}/base.rb +2 -2
- data/lib/masheri/service.rb +1 -1
- data/masheri.gemspec +26 -0
- data/spec/fixtures/config.no_host.yml +4 -0
- data/spec/fixtures/config.no_key.yml +4 -0
- data/spec/fixtures/config.no_secret.yml +4 -0
- data/spec/fixtures/config.no_site_id.yml +4 -0
- data/spec/fixtures/config.yml +5 -0
- data/spec/fixtures/services.json +3 -0
- data/spec/masheri/config_spec.rb +38 -0
- data/spec/masheri/member_spec.rb +47 -0
- data/spec/masheri/query_builder_spec.rb +13 -0
- data/spec/masheri/rest_client_spec.rb +47 -0
- data/spec/masheri/rpc_client_spec.rb +29 -0
- data/spec/masheri/service_spec.rb +101 -0
- data/spec/masheri_spec.rb +5 -0
- data/spec/spec_helper.rb +49 -0
- data/tasks/mashery.thor +200 -0
- metadata +40 -102
    
        data/spec/spec_helper.rb
    ADDED
    
    | @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            require 'bundler'
         | 
| 2 | 
            +
            require 'simplecov'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            SimpleCov.start
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            $LOAD_PATH.unshift File.expand_path("./lib")
         | 
| 7 | 
            +
            require 'masheri'
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            Bundler.require(:test)
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            RSpec.configure do |config|
         | 
| 12 | 
            +
              config.treat_symbols_as_metadata_keys_with_true_values = true
         | 
| 13 | 
            +
              config.run_all_when_everything_filtered = true
         | 
| 14 | 
            +
              config.filter_run :focus
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              # Run specs in random order to surface order dependencies. If you find an
         | 
| 17 | 
            +
              # order dependency and want to debug it, you can fix the order by providing
         | 
| 18 | 
            +
              # the seed, which is printed after each run.
         | 
| 19 | 
            +
              #     --seed 1234
         | 
| 20 | 
            +
              config.order = 'random'
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              config.before do
         | 
| 23 | 
            +
                Timecop.freeze Time.now
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
              config.before do
         | 
| 27 | 
            +
                config = double("config")
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                key       = "regular_key"
         | 
| 30 | 
            +
                secret    = "super_long_secret"
         | 
| 31 | 
            +
                signature = Digest::MD5.hexdigest(key + secret + Time.now.to_f.to_i.to_s)
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                config.stub({
         | 
| 34 | 
            +
                  site_id:   "987",
         | 
| 35 | 
            +
                  key:       key,
         | 
| 36 | 
            +
                  secret:    secret,
         | 
| 37 | 
            +
                  signature: signature,
         | 
| 38 | 
            +
                  host:      "masheri.example.com",
         | 
| 39 | 
            +
                })
         | 
| 40 | 
            +
             | 
| 41 | 
            +
                Masheri.config = config
         | 
| 42 | 
            +
              end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
              config.after do
         | 
| 45 | 
            +
                Timecop.return
         | 
| 46 | 
            +
              end
         | 
| 47 | 
            +
            end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
             | 
    
        data/tasks/mashery.thor
    ADDED
    
    | @@ -0,0 +1,200 @@ | |
| 1 | 
            +
            require 'rubygems'
         | 
| 2 | 
            +
            require 'bundler'
         | 
| 3 | 
            +
            Bundler.setup
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            # XXX: only do this when the task has not been installed
         | 
| 6 | 
            +
            $: << 'lib'
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            require 'mashery'
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            module Mashery
         | 
| 11 | 
            +
              class CLI < Thor
         | 
| 12 | 
            +
                namespace :mashery
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                desc "echo VALUE", "Echo the provided value (tests connectivity and authentication)"
         | 
| 15 | 
            +
                def echo(value)
         | 
| 16 | 
            +
                  run { ok(::Mashery.client.echo(value)) }
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              protected
         | 
| 20 | 
            +
                def run(&block)
         | 
| 21 | 
            +
                  site_id = ENV['MASHERY_SITE_ID'] or
         | 
| 22 | 
            +
                    raise Exception, "Please set the MASHERY_SITE_ID environment variable."
         | 
| 23 | 
            +
                  key = ENV['MASHERY_API_KEY'] or
         | 
| 24 | 
            +
                    raise Exception, "Please set the MASHERY_API_KEY environment variable."
         | 
| 25 | 
            +
                  secret = ENV['MASHERY_SHARED_SECRET'] or
         | 
| 26 | 
            +
                    raise Exception, "Please set the MASHERY_SHARED_SECRET environment variable."
         | 
| 27 | 
            +
                  ::Mashery.test_mode = ENV['MASHERY_PRODUCTION_MODE'].blank?
         | 
| 28 | 
            +
                  ::Mashery.logger.level = Logger::DEBUG
         | 
| 29 | 
            +
                  ::Mashery.client = ::Mashery::Client.new(site_id, key, secret)
         | 
| 30 | 
            +
                  begin
         | 
| 31 | 
            +
                    yield
         | 
| 32 | 
            +
                  rescue ::Mashery::HttpException => e
         | 
| 33 | 
            +
                    error("HTTP error: #{e.message}")
         | 
| 34 | 
            +
                  rescue ::Mashery::JsonRpcException => e
         | 
| 35 | 
            +
                    error(e.message)
         | 
| 36 | 
            +
                  rescue ::Mashery::ValidationException => e
         | 
| 37 | 
            +
                    e.errors.each {|err| warn("#{err['field']}: #{err['message']}")}
         | 
| 38 | 
            +
                    error("Unable to execute method due to validation errors")
         | 
| 39 | 
            +
                  end
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                def warn(msg)
         | 
| 43 | 
            +
                  say_status :WARN, msg, :yellow
         | 
| 44 | 
            +
                end
         | 
| 45 | 
            +
             | 
| 46 | 
            +
                def ok(msg)
         | 
| 47 | 
            +
                  say_status :OK, msg
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                def error(msg)
         | 
| 51 | 
            +
                  say_status :ERROR, msg, :red
         | 
| 52 | 
            +
                end
         | 
| 53 | 
            +
             | 
| 54 | 
            +
                def debug(msg)
         | 
| 55 | 
            +
                  say_status :DEBUG, msg, :cyan
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
              end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
              class MemberCLI < CLI
         | 
| 60 | 
            +
                namespace 'mashery:member'
         | 
| 61 | 
            +
             | 
| 62 | 
            +
                desc "create USERNAME DISPLAY_NAME EMAIL [--fields ...]", "Create a member"
         | 
| 63 | 
            +
                method_option :fields, :type => :hash
         | 
| 64 | 
            +
                def create(username, display_name, email)
         | 
| 65 | 
            +
                  run do
         | 
| 66 | 
            +
                    begin
         | 
| 67 | 
            +
                      member = ::Mashery::Member.create(username, display_name, email, options[:fields])
         | 
| 68 | 
            +
                      ok("Member #{member.username} created")
         | 
| 69 | 
            +
                    rescue ::Mashery::DuplicateObjectException
         | 
| 70 | 
            +
                      error("The username #{username} has already been claimed")
         | 
| 71 | 
            +
                    end
         | 
| 72 | 
            +
                  end
         | 
| 73 | 
            +
                end
         | 
| 74 | 
            +
             | 
| 75 | 
            +
                desc "fetch USERNAME", "Fetch a member"
         | 
| 76 | 
            +
                def fetch(username)
         | 
| 77 | 
            +
                  run do
         | 
| 78 | 
            +
                    member = ::Mashery::Member.fetch(username)
         | 
| 79 | 
            +
                    if member
         | 
| 80 | 
            +
                      ok("Member #{username} found")
         | 
| 81 | 
            +
                      say(member.to_yaml)
         | 
| 82 | 
            +
                    else
         | 
| 83 | 
            +
                      warn("Member #{username} not found")
         | 
| 84 | 
            +
                    end
         | 
| 85 | 
            +
                  end
         | 
| 86 | 
            +
                end
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                desc "addrole USERNAME ROLE_ID", "Assign a role to a member"
         | 
| 89 | 
            +
                def addrole(username, role_id)
         | 
| 90 | 
            +
                  run do
         | 
| 91 | 
            +
                    member = ::Mashery::Member.fetch(username)
         | 
| 92 | 
            +
                    if member
         | 
| 93 | 
            +
                      role = ::Mashery::Role.fetch(role_id.to_i)
         | 
| 94 | 
            +
                      if role
         | 
| 95 | 
            +
                        member.add_role(role)
         | 
| 96 | 
            +
                        ok("Role #{role.name} assigned to member #{username}")
         | 
| 97 | 
            +
                      else
         | 
| 98 | 
            +
                        warn("Role #{role_id} not found")
         | 
| 99 | 
            +
                      end
         | 
| 100 | 
            +
                    else
         | 
| 101 | 
            +
                      warn("Member #{username} not found")
         | 
| 102 | 
            +
                    end
         | 
| 103 | 
            +
                  end
         | 
| 104 | 
            +
                end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                desc "rmrole USERNAME ROLE_ID", "Revoke a role from a member"
         | 
| 107 | 
            +
                def rmrole(username, role_id)
         | 
| 108 | 
            +
                  run do
         | 
| 109 | 
            +
                    member = ::Mashery::Member.fetch(username)
         | 
| 110 | 
            +
                    if member
         | 
| 111 | 
            +
                      role = ::Mashery::Role.fetch(role_id.to_i)
         | 
| 112 | 
            +
                      if role
         | 
| 113 | 
            +
                        member.remove_role(role)
         | 
| 114 | 
            +
                        ok("Role #{role.name} revoked from member #{username}")
         | 
| 115 | 
            +
                      else
         | 
| 116 | 
            +
                        warn("Role #{role_id} not found")
         | 
| 117 | 
            +
                      end
         | 
| 118 | 
            +
                    else
         | 
| 119 | 
            +
                      warn("Member #{username} not found")
         | 
| 120 | 
            +
                    end
         | 
| 121 | 
            +
                  end
         | 
| 122 | 
            +
                end
         | 
| 123 | 
            +
             | 
| 124 | 
            +
                desc "delete USERNAME", "Delete a member"
         | 
| 125 | 
            +
                def delete(username)
         | 
| 126 | 
            +
                  run do
         | 
| 127 | 
            +
                    ::Mashery::Member.delete(username)
         | 
| 128 | 
            +
                    ok("Member #{username} deleted")
         | 
| 129 | 
            +
                  end
         | 
| 130 | 
            +
                end
         | 
| 131 | 
            +
              end
         | 
| 132 | 
            +
             | 
| 133 | 
            +
              class KeyCLI < CLI
         | 
| 134 | 
            +
                namespace 'mashery:key'
         | 
| 135 | 
            +
             | 
| 136 | 
            +
                desc "create SERVICE_KEY USERNAME [--fields ...]", "Create a key"
         | 
| 137 | 
            +
                method_option :fields, :type => :hash
         | 
| 138 | 
            +
                def create(service_key, username)
         | 
| 139 | 
            +
                  run do
         | 
| 140 | 
            +
                    key = ::Mashery::Key.create(service_key, username, options[:fields])
         | 
| 141 | 
            +
                    ok("Key #{key.id} created for member #{username} and service #{service_key}")
         | 
| 142 | 
            +
                  end
         | 
| 143 | 
            +
                end
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                desc "fetch ID", "Fetch a key"
         | 
| 146 | 
            +
                def fetch(id)
         | 
| 147 | 
            +
                  run do
         | 
| 148 | 
            +
                    key = ::Mashery::Key.fetch(id.to_i)
         | 
| 149 | 
            +
                    if key
         | 
| 150 | 
            +
                      ok("Key #{id} found")
         | 
| 151 | 
            +
                      say(key.to_yaml)
         | 
| 152 | 
            +
                    else
         | 
| 153 | 
            +
                      warn("Key #{id} not found")
         | 
| 154 | 
            +
                    end
         | 
| 155 | 
            +
                  end
         | 
| 156 | 
            +
                end
         | 
| 157 | 
            +
             | 
| 158 | 
            +
                desc "delete ID", "Delete a key"
         | 
| 159 | 
            +
                def delete(id)
         | 
| 160 | 
            +
                  run do
         | 
| 161 | 
            +
                    ::Mashery::Key.delete(id.to_i)
         | 
| 162 | 
            +
                    ok("Key #{id} deleted")
         | 
| 163 | 
            +
                  end
         | 
| 164 | 
            +
                end
         | 
| 165 | 
            +
              end
         | 
| 166 | 
            +
             | 
| 167 | 
            +
              class RoleCLI < CLI
         | 
| 168 | 
            +
                namespace 'mashery:role'
         | 
| 169 | 
            +
             | 
| 170 | 
            +
                desc "create NAME [--fields ...]", "Create a role"
         | 
| 171 | 
            +
                method_option :fields, :type => :hash
         | 
| 172 | 
            +
                def create(name)
         | 
| 173 | 
            +
                  run do
         | 
| 174 | 
            +
                    role = ::Mashery::Role.create(name, options[:fields])
         | 
| 175 | 
            +
                    ok("Role #{role.id} created with name #{name}")
         | 
| 176 | 
            +
                  end
         | 
| 177 | 
            +
                end
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                desc "fetch ID", "Fetch a role"
         | 
| 180 | 
            +
                def fetch(id)
         | 
| 181 | 
            +
                  run do
         | 
| 182 | 
            +
                    role = ::Mashery::Role.fetch(id.to_i)
         | 
| 183 | 
            +
                    if role
         | 
| 184 | 
            +
                      ok("Role #{id} found")
         | 
| 185 | 
            +
                      say(role.to_yaml)
         | 
| 186 | 
            +
                    else
         | 
| 187 | 
            +
                      warn("Role #{id} not found")
         | 
| 188 | 
            +
                    end
         | 
| 189 | 
            +
                  end
         | 
| 190 | 
            +
                end
         | 
| 191 | 
            +
             | 
| 192 | 
            +
                desc "delete ID", "Delete a role"
         | 
| 193 | 
            +
                def delete(id)
         | 
| 194 | 
            +
                  run do
         | 
| 195 | 
            +
                    ::Mashery::Role.delete(id.to_i)
         | 
| 196 | 
            +
                    ok("Role #{id} deleted")
         | 
| 197 | 
            +
                  end
         | 
| 198 | 
            +
                end
         | 
| 199 | 
            +
              end
         | 
| 200 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: masheri
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.6.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -59,102 +59,6 @@ dependencies: | |
| 59 59 | 
             
                - - ! '>='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 63 | 
            -
              name: redcarpet
         | 
| 64 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                none: false
         | 
| 66 | 
            -
                requirements:
         | 
| 67 | 
            -
                - - ! '>='
         | 
| 68 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 69 | 
            -
                    version: '0'
         | 
| 70 | 
            -
              type: :development
         | 
| 71 | 
            -
              prerelease: false
         | 
| 72 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            -
                none: false
         | 
| 74 | 
            -
                requirements:
         | 
| 75 | 
            -
                - - ! '>='
         | 
| 76 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            -
                    version: '0'
         | 
| 78 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 79 | 
            -
              name: jeweler
         | 
| 80 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 81 | 
            -
                none: false
         | 
| 82 | 
            -
                requirements:
         | 
| 83 | 
            -
                - - ! '>='
         | 
| 84 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 85 | 
            -
                    version: '0'
         | 
| 86 | 
            -
              type: :development
         | 
| 87 | 
            -
              prerelease: false
         | 
| 88 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 89 | 
            -
                none: false
         | 
| 90 | 
            -
                requirements:
         | 
| 91 | 
            -
                - - ! '>='
         | 
| 92 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 93 | 
            -
                    version: '0'
         | 
| 94 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 95 | 
            -
              name: devtools
         | 
| 96 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 97 | 
            -
                none: false
         | 
| 98 | 
            -
                requirements:
         | 
| 99 | 
            -
                - - ! '>='
         | 
| 100 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 101 | 
            -
                    version: '0'
         | 
| 102 | 
            -
              type: :development
         | 
| 103 | 
            -
              prerelease: false
         | 
| 104 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 105 | 
            -
                none: false
         | 
| 106 | 
            -
                requirements:
         | 
| 107 | 
            -
                - - ! '>='
         | 
| 108 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            -
                    version: '0'
         | 
| 110 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 111 | 
            -
              name: rake
         | 
| 112 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 113 | 
            -
                none: false
         | 
| 114 | 
            -
                requirements:
         | 
| 115 | 
            -
                - - ~>
         | 
| 116 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 117 | 
            -
                    version: 10.1.0
         | 
| 118 | 
            -
              type: :development
         | 
| 119 | 
            -
              prerelease: false
         | 
| 120 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            -
                none: false
         | 
| 122 | 
            -
                requirements:
         | 
| 123 | 
            -
                - - ~>
         | 
| 124 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            -
                    version: 10.1.0
         | 
| 126 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 127 | 
            -
              name: rspec
         | 
| 128 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 129 | 
            -
                none: false
         | 
| 130 | 
            -
                requirements:
         | 
| 131 | 
            -
                - - ~>
         | 
| 132 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 133 | 
            -
                    version: 2.14.1
         | 
| 134 | 
            -
              type: :development
         | 
| 135 | 
            -
              prerelease: false
         | 
| 136 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 137 | 
            -
                none: false
         | 
| 138 | 
            -
                requirements:
         | 
| 139 | 
            -
                - - ~>
         | 
| 140 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 141 | 
            -
                    version: 2.14.1
         | 
| 142 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 143 | 
            -
              name: yard
         | 
| 144 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 145 | 
            -
                none: false
         | 
| 146 | 
            -
                requirements:
         | 
| 147 | 
            -
                - - ~>
         | 
| 148 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 149 | 
            -
                    version: 0.8.7
         | 
| 150 | 
            -
              type: :development
         | 
| 151 | 
            -
              prerelease: false
         | 
| 152 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 153 | 
            -
                none: false
         | 
| 154 | 
            -
                requirements:
         | 
| 155 | 
            -
                - - ~>
         | 
| 156 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 157 | 
            -
                    version: 0.8.7
         | 
| 158 62 | 
             
            description: 
         | 
| 159 63 | 
             
            email: farleyknight@gmail.com
         | 
| 160 64 | 
             
            executables: []
         | 
| @@ -164,6 +68,26 @@ extra_rdoc_files: | |
| 164 68 | 
             
            - README.md
         | 
| 165 69 | 
             
            - README.textile
         | 
| 166 70 | 
             
            files:
         | 
| 71 | 
            +
            - .gitignore
         | 
| 72 | 
            +
            - .yardoc/checksums
         | 
| 73 | 
            +
            - .yardoc/object_types
         | 
| 74 | 
            +
            - .yardoc/objects/root.dat
         | 
| 75 | 
            +
            - .yardoc/proxy_types
         | 
| 76 | 
            +
            - Gemfile
         | 
| 77 | 
            +
            - Gemfile.devtools
         | 
| 78 | 
            +
            - Gemfile.lock
         | 
| 79 | 
            +
            - LICENSE.txt
         | 
| 80 | 
            +
            - README.md
         | 
| 81 | 
            +
            - README.textile
         | 
| 82 | 
            +
            - Rakefile
         | 
| 83 | 
            +
            - VERSION
         | 
| 84 | 
            +
            - config/devtools.yml
         | 
| 85 | 
            +
            - config/flay.yml
         | 
| 86 | 
            +
            - config/flog.yml
         | 
| 87 | 
            +
            - config/mutant.yml
         | 
| 88 | 
            +
            - config/reek.yml
         | 
| 89 | 
            +
            - config/rubocop.yml
         | 
| 90 | 
            +
            - config/yardstick.yml
         | 
| 167 91 | 
             
            - lib/masheri.rb
         | 
| 168 92 | 
             
            - lib/masheri/config.rb
         | 
| 169 93 | 
             
            - lib/masheri/exceptions.rb
         | 
| @@ -174,14 +98,27 @@ files: | |
| 174 98 | 
             
            - lib/masheri/query_builder.rb
         | 
| 175 99 | 
             
            - lib/masheri/rails.rb
         | 
| 176 100 | 
             
            - lib/masheri/rest_client.rb
         | 
| 177 | 
            -
            - lib/masheri/rest_client/base.rb
         | 
| 178 101 | 
             
            - lib/masheri/rest_client/query.rb
         | 
| 179 102 | 
             
            - lib/masheri/rpc_client.rb
         | 
| 103 | 
            +
            - lib/masheri/rpc_client/base.rb
         | 
| 180 104 | 
             
            - lib/masheri/rpc_client/response.rb
         | 
| 181 105 | 
             
            - lib/masheri/service.rb
         | 
| 182 | 
            -
            -  | 
| 183 | 
            -
            -  | 
| 184 | 
            -
            -  | 
| 106 | 
            +
            - masheri.gemspec
         | 
| 107 | 
            +
            - spec/fixtures/config.no_host.yml
         | 
| 108 | 
            +
            - spec/fixtures/config.no_key.yml
         | 
| 109 | 
            +
            - spec/fixtures/config.no_secret.yml
         | 
| 110 | 
            +
            - spec/fixtures/config.no_site_id.yml
         | 
| 111 | 
            +
            - spec/fixtures/config.yml
         | 
| 112 | 
            +
            - spec/fixtures/services.json
         | 
| 113 | 
            +
            - spec/masheri/config_spec.rb
         | 
| 114 | 
            +
            - spec/masheri/member_spec.rb
         | 
| 115 | 
            +
            - spec/masheri/query_builder_spec.rb
         | 
| 116 | 
            +
            - spec/masheri/rest_client_spec.rb
         | 
| 117 | 
            +
            - spec/masheri/rpc_client_spec.rb
         | 
| 118 | 
            +
            - spec/masheri/service_spec.rb
         | 
| 119 | 
            +
            - spec/masheri_spec.rb
         | 
| 120 | 
            +
            - spec/spec_helper.rb
         | 
| 121 | 
            +
            - tasks/mashery.thor
         | 
| 185 122 | 
             
            homepage: http://github.com/farleyknight/masheri
         | 
| 186 123 | 
             
            licenses:
         | 
| 187 124 | 
             
            - MIT
         | 
| @@ -197,7 +134,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 197 134 | 
             
                  version: '0'
         | 
| 198 135 | 
             
                  segments:
         | 
| 199 136 | 
             
                  - 0
         | 
| 200 | 
            -
                  hash: - | 
| 137 | 
            +
                  hash: -3841780233226734084
         | 
| 201 138 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 202 139 | 
             
              none: false
         | 
| 203 140 | 
             
              requirements:
         | 
| @@ -211,3 +148,4 @@ signing_key: | |
| 211 148 | 
             
            specification_version: 3
         | 
| 212 149 | 
             
            summary: Rails gem for Mashery. Clean config and includes tests with decent test coverage
         | 
| 213 150 | 
             
            test_files: []
         | 
| 151 | 
            +
            has_rdoc: 
         |