parliament-ruby 0.7.3.pre → 0.7.4
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/Gemfile +0 -3
- data/lib/parliament.rb +1 -1
- data/lib/parliament/builder.rb +4 -5
- data/lib/parliament/decorator/person.rb +2 -2
- data/lib/parliament/request.rb +4 -10
- data/lib/parliament/version.rb +1 -1
- data/parliament-ruby.gemspec +0 -1
- metadata +3 -19
- data/lib/parliament/builder/open_search_response_builder.rb +0 -17
- data/lib/parliament/request/open_search_request.rb +0 -79
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 72c73709b14ab1591a287636e7735c9758de56da
         | 
| 4 | 
            +
              data.tar.gz: 14aaef8e1f7233189d8f99488ea4ecfe740341a2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 13f59fb73e8b3078dc74b8899fd39ddf0c8d013cfb0ab8c4a005d216e275fe18ea266f10337ad46a1ff86a0be2bb17e49cb4e9f86661d9f6d028e91041e30689
         | 
| 7 | 
            +
              data.tar.gz: cc3d3831a3a52395f0bfb979f06fcfc56f47c36d589493ca79aa25597dcac4e3da5bb7463852d3696b810410398ac0ae3e50157d231434f26164b81c79d27de8
         | 
    
        data/Gemfile
    CHANGED
    
    
    
        data/lib/parliament.rb
    CHANGED
    
    | @@ -14,7 +14,7 @@ require 'parliament/server_error' | |
| 14 14 | 
             
            require 'parliament/no_content_response_error'
         | 
| 15 15 |  | 
| 16 16 | 
             
            # Namespace for classes and modules that handle connections to, and processing of data from the parliamentary API.
         | 
| 17 | 
            -
            # @since 0.0 | 
| 17 | 
            +
            # @since 0.1.0
         | 
| 18 18 | 
             
            module Parliament
         | 
| 19 19 | 
             
              # Currently just a namespace definition
         | 
| 20 20 | 
             
            end
         | 
    
        data/lib/parliament/builder.rb
    CHANGED
    
    | @@ -1,9 +1,8 @@ | |
| 1 1 | 
             
            module Parliament
         | 
| 2 | 
            +
              # Namespace for classes and modules that processes data from http requests.
         | 
| 3 | 
            +
              # @since 0.7.0
         | 
| 2 4 | 
             
              module Builder
         | 
| 3 | 
            -
                 | 
| 4 | 
            -
             | 
| 5 | 
            -
                require_relative '../parliament/builder/ntriple_response_builder'
         | 
| 6 | 
            -
             | 
| 7 | 
            -
                require_relative '../parliament/builder/open_search_response_builder'
         | 
| 5 | 
            +
                require 'parliament/builder/base_response_builder'
         | 
| 6 | 
            +
                require 'parliament/builder/ntriple_response_builder'
         | 
| 8 7 | 
             
              end
         | 
| 9 8 | 
             
            end
         | 
| @@ -170,8 +170,8 @@ module Parliament | |
| 170 170 | 
             
                  def build_house_membership_status(no_current_seat_incumbency, no_current_house_incumbency, former_lord, former_mp)
         | 
| 171 171 | 
             
                    statuses = []
         | 
| 172 172 | 
             
                    statuses << 'Current MP' unless no_current_seat_incumbency
         | 
| 173 | 
            -
                    statuses << ' | 
| 174 | 
            -
                    statuses << 'Former  | 
| 173 | 
            +
                    statuses << 'Member of the House of Lords' unless no_current_house_incumbency
         | 
| 174 | 
            +
                    statuses << 'Former Member of the House of Lords' if former_lord
         | 
| 175 175 | 
             
                    statuses << 'Former MP' if former_mp
         | 
| 176 176 |  | 
| 177 177 | 
             
                    statuses
         | 
    
        data/lib/parliament/request.rb
    CHANGED
    
    | @@ -1,14 +1,8 @@ | |
| 1 1 | 
             
            module Parliament
         | 
| 2 | 
            -
              #  | 
| 3 | 
            -
              #  | 
| 4 | 
            -
              #
         | 
| 5 | 
            -
              # @since 0.1.0
         | 
| 6 | 
            -
              #
         | 
| 7 | 
            -
              # @attr_reader [String] base_url the base url of our api. (expected: http://example.com - without the trailing slash).
         | 
| 8 | 
            -
              # @attr_reader [Hash] headers the headers being sent in the request.
         | 
| 2 | 
            +
              # Namespace for classes and modules that handle http connections.
         | 
| 3 | 
            +
              # @since 0.7.0
         | 
| 9 4 | 
             
              module Request
         | 
| 10 | 
            -
                 | 
| 11 | 
            -
                 | 
| 12 | 
            -
                require_relative '../parliament/request/url_request'
         | 
| 5 | 
            +
                require 'parliament/request/base_request'
         | 
| 6 | 
            +
                require 'parliament/request/url_request'
         | 
| 13 7 | 
             
              end
         | 
| 14 8 | 
             
            end
         | 
    
        data/lib/parliament/version.rb
    CHANGED
    
    
    
        data/parliament-ruby.gemspec
    CHANGED
    
    | @@ -20,7 +20,6 @@ Gem::Specification.new do |spec| | |
| 20 20 | 
             
              spec.executables   = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
         | 
| 21 21 | 
             
              spec.require_paths = ['lib']
         | 
| 22 22 |  | 
| 23 | 
            -
              spec.add_dependency 'feedjira', '~> 2.1.2'
         | 
| 24 23 | 
             
              spec.add_dependency 'grom', '~> 0.3.6'
         | 
| 25 24 |  | 
| 26 25 | 
             
              spec.add_development_dependency 'bundler', '~> 1.13'
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: parliament-ruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.7. | 
| 4 | 
            +
              version: 0.7.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Matt Rayner
         | 
| @@ -10,20 +10,6 @@ bindir: exe | |
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 | 
             
            date: 2017-04-10 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 | 
            -
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            -
              name: feedjira
         | 
| 15 | 
            -
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            -
                requirements:
         | 
| 17 | 
            -
                - - "~>"
         | 
| 18 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            -
                    version: 2.1.2
         | 
| 20 | 
            -
              type: :runtime
         | 
| 21 | 
            -
              prerelease: false
         | 
| 22 | 
            -
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            -
                requirements:
         | 
| 24 | 
            -
                - - "~>"
         | 
| 25 | 
            -
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            -
                    version: 2.1.2
         | 
| 27 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 14 | 
             
              name: grom
         | 
| 29 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -161,7 +147,6 @@ files: | |
| 161 147 | 
             
            - lib/parliament/builder.rb
         | 
| 162 148 | 
             
            - lib/parliament/builder/base_response_builder.rb
         | 
| 163 149 | 
             
            - lib/parliament/builder/ntriple_response_builder.rb
         | 
| 164 | 
            -
            - lib/parliament/builder/open_search_response_builder.rb
         | 
| 165 150 | 
             
            - lib/parliament/client_error.rb
         | 
| 166 151 | 
             
            - lib/parliament/decorator.rb
         | 
| 167 152 | 
             
            - lib/parliament/decorator/constituency_area.rb
         | 
| @@ -182,7 +167,6 @@ files: | |
| 182 167 | 
             
            - lib/parliament/no_content_response_error.rb
         | 
| 183 168 | 
             
            - lib/parliament/request.rb
         | 
| 184 169 | 
             
            - lib/parliament/request/base_request.rb
         | 
| 185 | 
            -
            - lib/parliament/request/open_search_request.rb
         | 
| 186 170 | 
             
            - lib/parliament/request/url_request.rb
         | 
| 187 171 | 
             
            - lib/parliament/response.rb
         | 
| 188 172 | 
             
            - lib/parliament/server_error.rb
         | 
| @@ -204,9 +188,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 204 188 | 
             
                  version: '0'
         | 
| 205 189 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 206 190 | 
             
              requirements:
         | 
| 207 | 
            -
              - - " | 
| 191 | 
            +
              - - ">="
         | 
| 208 192 | 
             
                - !ruby/object:Gem::Version
         | 
| 209 | 
            -
                  version:  | 
| 193 | 
            +
                  version: '0'
         | 
| 210 194 | 
             
            requirements: []
         | 
| 211 195 | 
             
            rubyforge_project: 
         | 
| 212 196 | 
             
            rubygems_version: 2.6.10
         | 
| @@ -1,17 +0,0 @@ | |
| 1 | 
            -
            require 'feedjira'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            module Parliament
         | 
| 4 | 
            -
              module Builder
         | 
| 5 | 
            -
                class OpenSearchResponseBuilder < Parliament::Builder::BaseResponseBuilder
         | 
| 6 | 
            -
                  OPEN_SEARCH_ELEMENTS = %w(totalResults Query startIndex itemsPerPage).freeze
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                  def build
         | 
| 9 | 
            -
                    OPEN_SEARCH_ELEMENTS.each do |element|
         | 
| 10 | 
            -
                      Feedjira::Feed.add_common_feed_element(element)
         | 
| 11 | 
            -
                    end
         | 
| 12 | 
            -
             | 
| 13 | 
            -
                    Feedjira::Feed.parse(@response.body)
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
              end
         | 
| 17 | 
            -
            end
         | 
| @@ -1,79 +0,0 @@ | |
| 1 | 
            -
            module Parliament
         | 
| 2 | 
            -
              module Request
         | 
| 3 | 
            -
                class OpenSearchRequest < Parliament::Request::BaseRequest
         | 
| 4 | 
            -
                  require 'rexml/document'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  OPEN_SEARCH_PARAMETERS = {
         | 
| 7 | 
            -
                      count:            10,
         | 
| 8 | 
            -
                      start_index:      1,
         | 
| 9 | 
            -
                      start_page:       1,
         | 
| 10 | 
            -
                      language:         '*',
         | 
| 11 | 
            -
                      output_encoding:  'UTF-8',
         | 
| 12 | 
            -
                      input_encoding:   'UTF-8'
         | 
| 13 | 
            -
                  }.freeze
         | 
| 14 | 
            -
             | 
| 15 | 
            -
                  def initialize(base_url: nil, headers: nil, builder: nil)
         | 
| 16 | 
            -
                    @base_url = Parliament::Request::OpenSearchRequest.get_description(base_url) || self.class.base_url || ENV['OPENSEARCH_DESCRIPTION_URL']
         | 
| 17 | 
            -
                    @open_search_parameters = self.class.open_search_parameters
         | 
| 18 | 
            -
             | 
| 19 | 
            -
                    super(base_url: @base_url, headers: headers, builder: builder)
         | 
| 20 | 
            -
                  end
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                  def get(search_params, params: nil)
         | 
| 23 | 
            -
                    setup_query_url(search_params)
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                    super(params: params)
         | 
| 26 | 
            -
                  end
         | 
| 27 | 
            -
             | 
| 28 | 
            -
                  private
         | 
| 29 | 
            -
             | 
| 30 | 
            -
                  class << self
         | 
| 31 | 
            -
                    attr_reader :base_url, :open_search_parameters
         | 
| 32 | 
            -
             | 
| 33 | 
            -
                    def base_url=(base_url)
         | 
| 34 | 
            -
                      @base_url = get_description(base_url)
         | 
| 35 | 
            -
                    end
         | 
| 36 | 
            -
             | 
| 37 | 
            -
                    def open_search_parameters
         | 
| 38 | 
            -
                      OPEN_SEARCH_PARAMETERS.dup
         | 
| 39 | 
            -
                    end
         | 
| 40 | 
            -
             | 
| 41 | 
            -
                    def get_description(url)
         | 
| 42 | 
            -
                      return if url.nil?
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                      # Make a straight Net::HTTP request to get our description file
         | 
| 45 | 
            -
                      xml_response = Parliament::Request::BaseRequest.new(
         | 
| 46 | 
            -
                        base_url: url,
         | 
| 47 | 
            -
                        headers: { 'Accept' => 'application/opensearchdescription+xml' }
         | 
| 48 | 
            -
                      ).get
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                      # Load the description as XML
         | 
| 51 | 
            -
                      xml_root = REXML::Document.new(xml_response.body).root
         | 
| 52 | 
            -
                      # TODO: Check for multiple 'Url' entries.
         | 
| 53 | 
            -
                      xml_root.elements['Url'].attributes['template'] # Get the URL
         | 
| 54 | 
            -
                    end
         | 
| 55 | 
            -
                  end
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                  def query_url
         | 
| 58 | 
            -
                    @query_url
         | 
| 59 | 
            -
                  end
         | 
| 60 | 
            -
             | 
| 61 | 
            -
                  def setup_query_url(search_params)
         | 
| 62 | 
            -
                    search_terms = search_params[:query]
         | 
| 63 | 
            -
                    query_url = @base_url.dup
         | 
| 64 | 
            -
                    query_url.gsub!('{searchTerms}', search_terms)
         | 
| 65 | 
            -
             | 
| 66 | 
            -
                    @open_search_parameters.each do |key, value|
         | 
| 67 | 
            -
                      camel_case_key = ActiveSupport::Inflector.camelize(key.to_s, false)
         | 
| 68 | 
            -
                      if search_params.keys.include?(key)
         | 
| 69 | 
            -
                        query_url.gsub!("{#{camel_case_key}?}", search_params[key].to_s)
         | 
| 70 | 
            -
                      else
         | 
| 71 | 
            -
                        query_url.gsub!("{#{camel_case_key}?}", value.to_s)
         | 
| 72 | 
            -
                      end
         | 
| 73 | 
            -
                    end
         | 
| 74 | 
            -
             | 
| 75 | 
            -
                    @query_url = query_url
         | 
| 76 | 
            -
                  end
         | 
| 77 | 
            -
                end
         | 
| 78 | 
            -
              end
         | 
| 79 | 
            -
            end
         |