freebox_api 0.1.1 → 0.1.2
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 +15 -0
- data/lib/freebox_api/config.rb +3 -2
- data/lib/freebox_api/freebox.rb +28 -2
- data/lib/freebox_api/resources/static_lease.rb +1 -1
- data/lib/freebox_api/version.rb +1 -1
- metadata +46 -68
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,15 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            !binary "U0hBMQ==":
         | 
| 3 | 
            +
              metadata.gz: !binary |-
         | 
| 4 | 
            +
                OWU0Zjg4MjY4Yjk3ZTFkNGZkMjY1MmJmOTM2NzNhNTIwNTU1ZTI0Mg==
         | 
| 5 | 
            +
              data.tar.gz: !binary |-
         | 
| 6 | 
            +
                MzM3ODk1MWMwZjg0NzZiYmUzMWRiY2JjNDZlYmEyMGZlZTc4NDk1YQ==
         | 
| 7 | 
            +
            SHA512:
         | 
| 8 | 
            +
              metadata.gz: !binary |-
         | 
| 9 | 
            +
                ZWE3ZTk4ODZhYjMxNGEyOTMyOTM3ZjVlY2ZjZGZmMTAwMzUyMThlNTUzOGQz
         | 
| 10 | 
            +
                M2QwYTdhMzQwZmNhZTUwNTcyZGJjNjlmZmMzNjg2OGVlZTExMTU3YzU1NWZj
         | 
| 11 | 
            +
                OTFmOTY1NjU1OWU1NWZmOGI3ZGJhNDY1OTY5MTQxODY3M2ViZTg=
         | 
| 12 | 
            +
              data.tar.gz: !binary |-
         | 
| 13 | 
            +
                MGI5ZGViOGViYmYxMTZhZTIxYjk3NmExODZhYjQ4NGYyNTZjNjMyYWZkZTY2
         | 
| 14 | 
            +
                MTQyMWZkZjRlM2E3NTdmMjgyOGRjZThmY2Y0NjY1OTc0MTA5NTgyYjBhZDYz
         | 
| 15 | 
            +
                YzE4MjIyMzJhODY1ZGQ1NzlmZDBlMzc4ODA3ZTM2NTRjY2EwNDE=
         | 
    
        data/lib/freebox_api/config.rb
    CHANGED
    
    | @@ -3,6 +3,7 @@ module FreeboxApi | |
| 3 3 | 
             
              class Config
         | 
| 4 4 |  | 
| 5 5 | 
             
                def initialize(session)
         | 
| 6 | 
            +
                  @session = session
         | 
| 6 7 | 
             
                end
         | 
| 7 8 |  | 
| 8 9 | 
             
                def url(service)
         | 
| @@ -21,11 +22,11 @@ module FreeboxApi | |
| 21 22 | 
             
                end
         | 
| 22 23 |  | 
| 23 24 | 
             
                def show(service)
         | 
| 24 | 
            -
                  @session.http_call('get', url)
         | 
| 25 | 
            +
                  @session.http_call('get', url(service))
         | 
| 25 26 | 
             
                end
         | 
| 26 27 |  | 
| 27 28 | 
             
                def update(service, params = {})
         | 
| 28 | 
            -
                  @session.http_call('put', url, params)
         | 
| 29 | 
            +
                  @session.http_call('put', url(service), params)
         | 
| 29 30 | 
             
                end
         | 
| 30 31 |  | 
| 31 32 | 
             
              end
         | 
    
        data/lib/freebox_api/freebox.rb
    CHANGED
    
    | @@ -1,10 +1,13 @@ | |
| 1 1 | 
             
            require 'rest_client'
         | 
| 2 2 | 
             
            require 'json'
         | 
| 3 | 
            +
            require 'logger'
         | 
| 3 4 |  | 
| 4 5 | 
             
            module FreeboxApi
         | 
| 5 6 |  | 
| 6 7 | 
             
              class Freebox < Hash
         | 
| 7 8 |  | 
| 9 | 
            +
                attr_reader :logger
         | 
| 10 | 
            +
             | 
| 8 11 | 
             
                def initialize(hash = {})
         | 
| 9 12 | 
             
                  self[:freebox_ip] = hash[:freebox_ip] ? hash[:freebox_ip] : 'mafreebox.free.fr'
         | 
| 10 13 | 
             
                  self[:freebox_port] = hash[:freebox_port] ? hash[:freebox_port] : '80'
         | 
| @@ -14,8 +17,17 @@ module FreeboxApi | |
| 14 17 | 
             
                  self[:api_version] = discover['api_version']
         | 
| 15 18 | 
             
                  self[:api_base_url] = discover['api_base_url']
         | 
| 16 19 | 
             
                  self[:device_type] = discover['device_type']
         | 
| 20 | 
            +
                  self.logger = nil
         | 
| 17 21 | 
             
                end
         | 
| 18 22 |  | 
| 23 | 
            +
                def logger=(logger)
         | 
| 24 | 
            +
                  if logger.nil?
         | 
| 25 | 
            +
                    logger = Logger.new(STDOUT)
         | 
| 26 | 
            +
                    logger.level = Logger::WARN
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
                    @logger = logger
         | 
| 29 | 
            +
                  end
         | 
| 30 | 
            +
             | 
| 19 31 | 
             
                def discover
         | 
| 20 32 | 
             
                  args = ['get']
         | 
| 21 33 | 
             
                  @discover ||= JSON.parse(@client['/api_version'].send(*args))
         | 
| @@ -37,7 +49,7 @@ module FreeboxApi | |
| 37 49 | 
             
                  http_call('get', '/login/')['challenge']
         | 
| 38 50 | 
             
                end
         | 
| 39 51 |  | 
| 40 | 
            -
                def http_call(http_method, path, params =  | 
| 52 | 
            +
                def http_call(http_method, path, params = nil, session = nil)
         | 
| 41 53 | 
             
                  headers = {}
         | 
| 42 54 |  | 
| 43 55 | 
             
                  args = [http_method]
         | 
| @@ -47,8 +59,22 @@ module FreeboxApi | |
| 47 59 | 
             
                    headers[:params] = params if params
         | 
| 48 60 | 
             
                  end
         | 
| 49 61 | 
             
                  headers[:'X_Fbx_App_Auth'] = session.session_token if session
         | 
| 62 | 
            +
             | 
| 63 | 
            +
                  logger.info "#{http_method.upcase} #{path}"
         | 
| 64 | 
            +
                  logger.debug "Params: #{params.inspect}"
         | 
| 65 | 
            +
                  logger.debug "Headers: #{headers.inspect}"
         | 
| 50 66 | 
             
                  args << headers if headers
         | 
| 51 | 
            -
                   | 
| 67 | 
            +
                  process_data(@client[build_url(path)].send(*args))['result']
         | 
| 68 | 
            +
                end
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                def process_data(response)
         | 
| 71 | 
            +
                  data = begin
         | 
| 72 | 
            +
                    JSON.parse(response.body)
         | 
| 73 | 
            +
                  rescue JSON::ParserError
         | 
| 74 | 
            +
                    response.body
         | 
| 75 | 
            +
                  end
         | 
| 76 | 
            +
                  logger.debug "Returned data: #{data.inspect}"
         | 
| 77 | 
            +
                  return data
         | 
| 52 78 | 
             
                end
         | 
| 53 79 |  | 
| 54 80 | 
             
              end
         | 
    
        data/lib/freebox_api/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,61 +1,49 @@ | |
| 1 | 
            -
            --- !ruby/object:Gem::Specification | 
| 1 | 
            +
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: freebox_api
         | 
| 3 | 
            -
            version: !ruby/object:Gem::Version | 
| 4 | 
            -
               | 
| 5 | 
            -
              prerelease: 
         | 
| 6 | 
            -
              segments: 
         | 
| 7 | 
            -
              - 0
         | 
| 8 | 
            -
              - 1
         | 
| 9 | 
            -
              - 1
         | 
| 10 | 
            -
              version: 0.1.1
         | 
| 3 | 
            +
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            +
              version: 0.1.2
         | 
| 11 5 | 
             
            platform: ruby
         | 
| 12 | 
            -
            authors: | 
| 13 | 
            -
            -  | 
| 6 | 
            +
            authors:
         | 
| 7 | 
            +
            - Mickaël Canévet
         | 
| 14 8 | 
             
            autorequire: 
         | 
| 15 9 | 
             
            bindir: bin
         | 
| 16 10 | 
             
            cert_chain: []
         | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 11 | 
            +
            date: 2013-09-30 00:00:00.000000000 Z
         | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 21 14 | 
             
              name: json
         | 
| 22 | 
            -
               | 
| 23 | 
            -
             | 
| 24 | 
            -
                 | 
| 25 | 
            -
             | 
| 26 | 
            -
             | 
| 27 | 
            -
                  - !ruby/object:Gem::Version 
         | 
| 28 | 
            -
                    hash: 3
         | 
| 29 | 
            -
                    segments: 
         | 
| 30 | 
            -
                    - 0
         | 
| 31 | 
            -
                    version: "0"
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - ! '>='
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: '0'
         | 
| 32 20 | 
             
              type: :runtime
         | 
| 33 | 
            -
              version_requirements: *id001
         | 
| 34 | 
            -
            - !ruby/object:Gem::Dependency 
         | 
| 35 | 
            -
              name: rest-client
         | 
| 36 21 | 
             
              prerelease: false
         | 
| 37 | 
            -
               | 
| 38 | 
            -
                 | 
| 39 | 
            -
                 | 
| 40 | 
            -
             | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - ! '>='
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: '0'
         | 
| 27 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 28 | 
            +
              name: rest-client
         | 
| 29 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 | 
            +
                requirements:
         | 
| 31 | 
            +
                - - ! '>='
         | 
| 32 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 47 33 | 
             
                    version: 1.6.1
         | 
| 48 34 | 
             
              type: :runtime
         | 
| 49 | 
            -
               | 
| 35 | 
            +
              prerelease: false
         | 
| 36 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 | 
            +
                requirements:
         | 
| 38 | 
            +
                - - ! '>='
         | 
| 39 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 40 | 
            +
                    version: 1.6.1
         | 
| 50 41 | 
             
            description: Helps you to use Freebox OS's API calls from your app
         | 
| 51 42 | 
             
            email: mickael.canevet@gmail.com
         | 
| 52 43 | 
             
            executables: []
         | 
| 53 | 
            -
             | 
| 54 44 | 
             
            extensions: []
         | 
| 55 | 
            -
             | 
| 56 45 | 
             
            extra_rdoc_files: []
         | 
| 57 | 
            -
             | 
| 58 | 
            -
            files: 
         | 
| 46 | 
            +
            files:
         | 
| 59 47 | 
             
            - .gitignore
         | 
| 60 48 | 
             
            - LICENSE
         | 
| 61 49 | 
             
            - README.md
         | 
| @@ -74,37 +62,27 @@ files: | |
| 74 62 | 
             
            - lib/freebox_api/session.rb
         | 
| 75 63 | 
             
            - lib/freebox_api/version.rb
         | 
| 76 64 | 
             
            homepage: http://github.com/mcanevet/freebox_api
         | 
| 77 | 
            -
            licenses: | 
| 65 | 
            +
            licenses:
         | 
| 78 66 | 
             
            - Apache 2.0
         | 
| 67 | 
            +
            metadata: {}
         | 
| 79 68 | 
             
            post_install_message: 
         | 
| 80 69 | 
             
            rdoc_options: []
         | 
| 81 | 
            -
             | 
| 82 | 
            -
            require_paths: 
         | 
| 70 | 
            +
            require_paths:
         | 
| 83 71 | 
             
            - lib
         | 
| 84 | 
            -
            required_ruby_version: !ruby/object:Gem::Requirement | 
| 85 | 
            -
               | 
| 86 | 
            -
               | 
| 87 | 
            -
             | 
| 88 | 
            -
             | 
| 89 | 
            -
             | 
| 90 | 
            -
             | 
| 91 | 
            -
             | 
| 92 | 
            -
             | 
| 93 | 
            -
             | 
| 94 | 
            -
              none: false
         | 
| 95 | 
            -
              requirements: 
         | 
| 96 | 
            -
              - - ">="
         | 
| 97 | 
            -
                - !ruby/object:Gem::Version 
         | 
| 98 | 
            -
                  hash: 3
         | 
| 99 | 
            -
                  segments: 
         | 
| 100 | 
            -
                  - 0
         | 
| 101 | 
            -
                  version: "0"
         | 
| 72 | 
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
              requirements:
         | 
| 74 | 
            +
              - - ! '>='
         | 
| 75 | 
            +
                - !ruby/object:Gem::Version
         | 
| 76 | 
            +
                  version: '0'
         | 
| 77 | 
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 78 | 
            +
              requirements:
         | 
| 79 | 
            +
              - - ! '>='
         | 
| 80 | 
            +
                - !ruby/object:Gem::Version
         | 
| 81 | 
            +
                  version: '0'
         | 
| 102 82 | 
             
            requirements: []
         | 
| 103 | 
            -
             | 
| 104 83 | 
             
            rubyforge_project: 
         | 
| 105 | 
            -
            rubygems_version: 1. | 
| 84 | 
            +
            rubygems_version: 2.1.5
         | 
| 106 85 | 
             
            signing_key: 
         | 
| 107 | 
            -
            specification_version:  | 
| 86 | 
            +
            specification_version: 4
         | 
| 108 87 | 
             
            summary: Ruby bindings for Freebox OS's rest API
         | 
| 109 88 | 
             
            test_files: []
         | 
| 110 | 
            -
             |