osm 0.4.0 → 0.4.1
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/CHANGELOG.md +5 -0
- data/README.md +4 -4
- data/lib/osm.rb +7 -1
- data/lib/osm/event.rb +3 -1
- data/spec/osm/event_spec.rb +40 -0
- data/version.rb +1 -1
- metadata +73 -23
    
        data/CHANGELOG.md
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -1,3 +1,7 @@ | |
| 1 | 
            +
            [](http://badge.fury.io/rb/osm)
         | 
| 2 | 
            +
            [](https://gemnasium.com/robertgauld/osm)
         | 
| 3 | 
            +
             | 
| 4 | 
            +
             | 
| 1 5 | 
             
            ##Build State
         | 
| 2 6 | 
             
            This project uses continuous integration to help ensure that a quality product is delivered.
         | 
| 3 7 | 
             
            Travis CI monitors two branches (versions) of the code - Master (which is what gets released)
         | 
| @@ -7,10 +11,6 @@ Master [](http://travis-ci.org/robertgauld/osm)
         | 
| 9 13 |  | 
| 10 | 
            -
            This project also uses gemnasium to help ensure that the current version of libraries are being used.
         | 
| 11 | 
            -
             | 
| 12 | 
            -
            Master [](https://gemnasium.com/robertgauld/osm)
         | 
| 13 | 
            -
             | 
| 14 14 |  | 
| 15 15 | 
             
            ## OSM
         | 
| 16 16 |  | 
    
        data/lib/osm.rb
    CHANGED
    
    | @@ -1,3 +1,4 @@ | |
| 1 | 
            +
            # Require gems
         | 
| 1 2 | 
             
            require 'active_attr'
         | 
| 2 3 | 
             
            require 'active_support'
         | 
| 3 4 | 
             
            require 'active_model'
         | 
| @@ -7,6 +8,7 @@ require 'dirty_hashy' | |
| 7 8 |  | 
| 8 9 |  | 
| 9 10 | 
             
            module Osm
         | 
| 11 | 
            +
              # Declare exceptions
         | 
| 10 12 | 
             
              class Error < Exception; end
         | 
| 11 13 | 
             
              class ConnectionError < Error; end
         | 
| 12 14 | 
             
              class Forbidden < Error; end
         | 
| @@ -14,6 +16,7 @@ module Osm | |
| 14 16 | 
             
              class ObjectIsInvalid < Error; end
         | 
| 15 17 |  | 
| 16 18 | 
             
              private
         | 
| 19 | 
            +
              # Set constants
         | 
| 17 20 | 
             
              OSM_EPOCH = '1970-01-01'
         | 
| 18 21 | 
             
              OSM_EPOCH_HUMAN = '1970-01-01'
         | 
| 19 22 | 
             
              OSM_DATE_FORMAT = '%Y-%m-%d'
         | 
| @@ -25,9 +28,12 @@ module Osm | |
| 25 28 | 
             
              OSM_DATE_REGEX = /\A(?:\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[1-2][0-9]|3[0-1]))|(?:(?:0?[1-9]|[1-2][0-9]|3[0-1])\/(?:0?[1-9]|1[0-2])\/\d{2}|\d{4})\Z/
         | 
| 26 29 | 
             
            end
         | 
| 27 30 |  | 
| 31 | 
            +
            # Require file for this gem
         | 
| 28 32 | 
             
            require File.join(File.dirname(__FILE__), '..', 'version')
         | 
| 29 33 | 
             
            Dir[File.join(File.dirname(__FILE__) , '*_validator.rb')].each {|file| require file }
         | 
| 30 | 
            -
             | 
| 34 | 
            +
            ['model', 'flexi_record'].each do |file| # These must be included before the rest
         | 
| 35 | 
            +
              require File.join(File.dirname(__FILE__), 'osm', file)
         | 
| 36 | 
            +
            end
         | 
| 31 37 | 
             
            Dir[File.join(File.dirname(__FILE__) , 'osm', '*.rb')].each {|file| require file }
         | 
| 32 38 |  | 
| 33 39 |  | 
    
        data/lib/osm/event.rb
    CHANGED
    
    | @@ -373,7 +373,9 @@ module Osm | |
| 373 373 | 
             
                  )
         | 
| 374 374 |  | 
| 375 375 | 
             
                  columns = []
         | 
| 376 | 
            -
                  ActiveSupport::JSON.decode(event_data['config'] | 
| 376 | 
            +
                  column_data = ActiveSupport::JSON.decode(event_data['config'] || '[]')
         | 
| 377 | 
            +
                  column_data = [] unless column_data.is_a?(Array)
         | 
| 378 | 
            +
                  column_data.each do |field|
         | 
| 377 379 | 
             
                    columns.push Column.new(:id => field['id'], :name => field['name'], :label => field['pL'], :event => event)
         | 
| 378 380 | 
             
                  end
         | 
| 379 381 | 
             
                  event.columns = columns
         | 
    
        data/spec/osm/event_spec.rb
    CHANGED
    
    | @@ -732,11 +732,51 @@ describe "Event" do | |
| 732 732 |  | 
| 733 733 |  | 
| 734 734 | 
             
              describe "API Strangeness" do
         | 
| 735 | 
            +
             | 
| 735 736 | 
             
                it "handles a non existant array when no events" do
         | 
| 736 737 | 
             
                  data = '{"identifier":"eventid","label":"name"}'
         | 
| 737 738 | 
             
                  FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/events.php?action=getEvents§ionid=1&showArchived=true", :body => data)
         | 
| 738 739 | 
             
                  events = Osm::Event.get_for_section(@api, 1).should == []
         | 
| 739 740 | 
             
                end
         | 
| 741 | 
            +
             | 
| 742 | 
            +
                it "handles missing config from OSM" do
         | 
| 743 | 
            +
                  events_body = '{"identifier":"eventid","label":"name","items":[{"eventid":"2","name":"An Event","startdate":"2001-02-03","enddate":"2001-02-05","starttime":"00:00:00","endtime":"12:00:00","cost":"0.00","location":"Somewhere","notes":"Notes","sectionid":1,"googlecalendar":null,"archived":"0","confdate":null,"allowchanges":"1","disablereminders":"1","attendancelimit":"3","limitincludesleaders":"1"}]}'
         | 
| 744 | 
            +
             | 
| 745 | 
            +
                  event_body = {
         | 
| 746 | 
            +
                    'eventid' => '2',
         | 
| 747 | 
            +
                    'name' => 'An Event',
         | 
| 748 | 
            +
                    'startdate' => '2001-01-02',
         | 
| 749 | 
            +
                    'enddate' => '2001-02-05',
         | 
| 750 | 
            +
                    'starttime' => '00:00:00',
         | 
| 751 | 
            +
                    'endtime' => '12:00:00',
         | 
| 752 | 
            +
                    'cost' => '0.00',
         | 
| 753 | 
            +
                    'location' => 'Somewhere',
         | 
| 754 | 
            +
                    'notes' => 'Notes',
         | 
| 755 | 
            +
                    'notepad' => 'notepad',
         | 
| 756 | 
            +
                    'publicnotes' => 'public notepad',
         | 
| 757 | 
            +
                    'sectionid' => '1',
         | 
| 758 | 
            +
                    'googlecalendar' => nil,
         | 
| 759 | 
            +
                    'archived' => '0',
         | 
| 760 | 
            +
                    'confdate' => '2002-01-02',
         | 
| 761 | 
            +
                    'allowchanges' => '1',
         | 
| 762 | 
            +
                    'disablereminders' => '1',
         | 
| 763 | 
            +
                    'pnnotepad' => '',
         | 
| 764 | 
            +
                    'structure' => [],
         | 
| 765 | 
            +
                    'attendancelimit' => '3',
         | 
| 766 | 
            +
                    'limitincludesleaders' => '1',
         | 
| 767 | 
            +
                  }
         | 
| 768 | 
            +
             | 
| 769 | 
            +
                  FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/events.php?action=getEvents§ionid=1&showArchived=true", :body => events_body)
         | 
| 770 | 
            +
                  FakeWeb.register_uri(:post, "https://www.onlinescoutmanager.co.uk/events.php?action=getEvent§ionid=1&eventid=2", :body => event_body.to_json)
         | 
| 771 | 
            +
             | 
| 772 | 
            +
                  Osm::Model.stub(:get_user_permissions) { {:events => [:read, :write]} }
         | 
| 773 | 
            +
             | 
| 774 | 
            +
                  event = Osm::Event.get(@api, 1, 2)
         | 
| 775 | 
            +
                  event.should_not be_nil
         | 
| 776 | 
            +
                  event.id.should == 2
         | 
| 777 | 
            +
                  event.columns.should == []
         | 
| 778 | 
            +
                end
         | 
| 779 | 
            +
             | 
| 740 780 | 
             
              end
         | 
| 741 781 |  | 
| 742 782 | 
             
            end
         | 
    
        data/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: osm
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.4. | 
| 4 | 
            +
              version: 0.4.1
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013-03- | 
| 12 | 
            +
            date: 2013-03-19 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| 16 | 
            -
              requirement:  | 
| 16 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ~>
         | 
| @@ -21,10 +21,15 @@ dependencies: | |
| 21 21 | 
             
                    version: '3.2'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements:  | 
| 24 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            +
                none: false
         | 
| 26 | 
            +
                requirements:
         | 
| 27 | 
            +
                - - ~>
         | 
| 28 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 29 | 
            +
                    version: '3.2'
         | 
| 25 30 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 26 31 | 
             
              name: httparty
         | 
| 27 | 
            -
              requirement:  | 
| 32 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 28 33 | 
             
                none: false
         | 
| 29 34 | 
             
                requirements:
         | 
| 30 35 | 
             
                - - ~>
         | 
| @@ -32,10 +37,15 @@ dependencies: | |
| 32 37 | 
             
                    version: '0.9'
         | 
| 33 38 | 
             
              type: :runtime
         | 
| 34 39 | 
             
              prerelease: false
         | 
| 35 | 
            -
              version_requirements:  | 
| 40 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            +
                none: false
         | 
| 42 | 
            +
                requirements:
         | 
| 43 | 
            +
                - - ~>
         | 
| 44 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 45 | 
            +
                    version: '0.9'
         | 
| 36 46 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 37 47 | 
             
              name: active_attr
         | 
| 38 | 
            -
              requirement:  | 
| 48 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 39 49 | 
             
                none: false
         | 
| 40 50 | 
             
                requirements:
         | 
| 41 51 | 
             
                - - ~>
         | 
| @@ -43,10 +53,15 @@ dependencies: | |
| 43 53 | 
             
                    version: '0.6'
         | 
| 44 54 | 
             
              type: :runtime
         | 
| 45 55 | 
             
              prerelease: false
         | 
| 46 | 
            -
              version_requirements:  | 
| 56 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            +
                none: false
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - ~>
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: '0.6'
         | 
| 47 62 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 63 | 
             
              name: activemodel
         | 
| 49 | 
            -
              requirement:  | 
| 64 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 50 65 | 
             
                none: false
         | 
| 51 66 | 
             
                requirements:
         | 
| 52 67 | 
             
                - - ~>
         | 
| @@ -54,10 +69,15 @@ dependencies: | |
| 54 69 | 
             
                    version: '3.2'
         | 
| 55 70 | 
             
              type: :runtime
         | 
| 56 71 | 
             
              prerelease: false
         | 
| 57 | 
            -
              version_requirements:  | 
| 72 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            +
                none: false
         | 
| 74 | 
            +
                requirements:
         | 
| 75 | 
            +
                - - ~>
         | 
| 76 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 77 | 
            +
                    version: '3.2'
         | 
| 58 78 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 59 79 | 
             
              name: dirty_hashy
         | 
| 60 | 
            -
              requirement:  | 
| 80 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 61 81 | 
             
                none: false
         | 
| 62 82 | 
             
                requirements:
         | 
| 63 83 | 
             
                - - ~>
         | 
| @@ -65,10 +85,15 @@ dependencies: | |
| 65 85 | 
             
                    version: 0.2.1
         | 
| 66 86 | 
             
              type: :runtime
         | 
| 67 87 | 
             
              prerelease: false
         | 
| 68 | 
            -
              version_requirements:  | 
| 88 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 89 | 
            +
                none: false
         | 
| 90 | 
            +
                requirements:
         | 
| 91 | 
            +
                - - ~>
         | 
| 92 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 93 | 
            +
                    version: 0.2.1
         | 
| 69 94 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 95 | 
             
              name: rake
         | 
| 71 | 
            -
              requirement:  | 
| 96 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 97 | 
             
                none: false
         | 
| 73 98 | 
             
                requirements:
         | 
| 74 99 | 
             
                - - ~>
         | 
| @@ -76,10 +101,15 @@ dependencies: | |
| 76 101 | 
             
                    version: '10.0'
         | 
| 77 102 | 
             
              type: :development
         | 
| 78 103 | 
             
              prerelease: false
         | 
| 79 | 
            -
              version_requirements:  | 
| 104 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 105 | 
            +
                none: false
         | 
| 106 | 
            +
                requirements:
         | 
| 107 | 
            +
                - - ~>
         | 
| 108 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 109 | 
            +
                    version: '10.0'
         | 
| 80 110 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 81 111 | 
             
              name: rspec
         | 
| 82 | 
            -
              requirement:  | 
| 112 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 83 113 | 
             
                none: false
         | 
| 84 114 | 
             
                requirements:
         | 
| 85 115 | 
             
                - - ~>
         | 
| @@ -87,10 +117,15 @@ dependencies: | |
| 87 117 | 
             
                    version: '2.11'
         | 
| 88 118 | 
             
              type: :development
         | 
| 89 119 | 
             
              prerelease: false
         | 
| 90 | 
            -
              version_requirements:  | 
| 120 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 | 
            +
                none: false
         | 
| 122 | 
            +
                requirements:
         | 
| 123 | 
            +
                - - ~>
         | 
| 124 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 125 | 
            +
                    version: '2.11'
         | 
| 91 126 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 92 127 | 
             
              name: fakeweb
         | 
| 93 | 
            -
              requirement:  | 
| 128 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 94 129 | 
             
                none: false
         | 
| 95 130 | 
             
                requirements:
         | 
| 96 131 | 
             
                - - ~>
         | 
| @@ -98,10 +133,15 @@ dependencies: | |
| 98 133 | 
             
                    version: '1.3'
         | 
| 99 134 | 
             
              type: :development
         | 
| 100 135 | 
             
              prerelease: false
         | 
| 101 | 
            -
              version_requirements:  | 
| 136 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 137 | 
            +
                none: false
         | 
| 138 | 
            +
                requirements:
         | 
| 139 | 
            +
                - - ~>
         | 
| 140 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 141 | 
            +
                    version: '1.3'
         | 
| 102 142 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 103 143 | 
             
              name: guard-rspec
         | 
| 104 | 
            -
              requirement:  | 
| 144 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 105 145 | 
             
                none: false
         | 
| 106 146 | 
             
                requirements:
         | 
| 107 147 | 
             
                - - ~>
         | 
| @@ -109,10 +149,15 @@ dependencies: | |
| 109 149 | 
             
                    version: '2.4'
         | 
| 110 150 | 
             
              type: :development
         | 
| 111 151 | 
             
              prerelease: false
         | 
| 112 | 
            -
              version_requirements:  | 
| 152 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 153 | 
            +
                none: false
         | 
| 154 | 
            +
                requirements:
         | 
| 155 | 
            +
                - - ~>
         | 
| 156 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 157 | 
            +
                    version: '2.4'
         | 
| 113 158 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 114 159 | 
             
              name: rb-inotify
         | 
| 115 | 
            -
              requirement:  | 
| 160 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 116 161 | 
             
                none: false
         | 
| 117 162 | 
             
                requirements:
         | 
| 118 163 | 
             
                - - ~>
         | 
| @@ -120,7 +165,12 @@ dependencies: | |
| 120 165 | 
             
                    version: '0.9'
         | 
| 121 166 | 
             
              type: :development
         | 
| 122 167 | 
             
              prerelease: false
         | 
| 123 | 
            -
              version_requirements:  | 
| 168 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 169 | 
            +
                none: false
         | 
| 170 | 
            +
                requirements:
         | 
| 171 | 
            +
                - - ~>
         | 
| 172 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 173 | 
            +
                    version: '0.9'
         | 
| 124 174 | 
             
            description: Use the Online Scout Manager API (https://www.onlinescoutmanager.co.uk)
         | 
| 125 175 | 
             
              to retrieve and save data.
         | 
| 126 176 | 
             
            email:
         | 
| @@ -193,7 +243,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 193 243 | 
             
                  version: '0'
         | 
| 194 244 | 
             
            requirements: []
         | 
| 195 245 | 
             
            rubyforge_project: osm
         | 
| 196 | 
            -
            rubygems_version: 1.8. | 
| 246 | 
            +
            rubygems_version: 1.8.25
         | 
| 197 247 | 
             
            signing_key: 
         | 
| 198 248 | 
             
            specification_version: 3
         | 
| 199 249 | 
             
            summary: Use the Online Scout Manager API
         |