apralib 0.0.3 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8e1c3d9ef8c6aa739c7be8d71899aedda2282086
4
- data.tar.gz: d953aab95c39d1f878c069d01abfaba639b2d821
2
+ SHA256:
3
+ metadata.gz: c622f4562613956c04bd339229bba76d93710f30e759857d5484a25a3e009124
4
+ data.tar.gz: dcfd5590999ac42db30d87ea0970cd5147f72d44a45d13ab0895f942bbda2f85
5
5
  SHA512:
6
- metadata.gz: eaf017863402a9d98e217dbf68058f422fbad6aa4f9e240d1021c77c683c44cbf7ac33dba80c44eb110adf7bd455631384b5b1c7dd4ea05050865d54f56007eb
7
- data.tar.gz: b3fc8bbf5d3c8ff312698df6cbfb62a0b346cf4078f454bb290302201d2ac8e52b7542f2a2f499430ef5d40e1bcc358568a0c7237c8282218c2effccf8ac6acb
6
+ metadata.gz: 20e87a804bb01d8c5823a3ed5f1c38c4b5e7a1f39a2e99fec1fbb1b8562f97a9ec6b1ea8b6d315410622fbb8e2c9fd84b0cf218a6926da2cd948ef55e881c038
7
+ data.tar.gz: ab964e22af2019bae50817f17462a686156a1b10c6e89a929fa1643cb34be6c4c0aa458f0b59d8711bd8d7c3b60318d5b4ac1f25b0aed85d2b8087e5e61d990c
data/.rubocop.yml ADDED
@@ -0,0 +1,3 @@
1
+ Metrics/BlockLength:
2
+ Exclude:
3
+ - spec/**/*.rb
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.7.2
data/.travis.yml CHANGED
@@ -1,8 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.3
4
- - 1.9.3
5
- env:
6
- global:
7
- - secure: XQ58eL4HELhYo0x1RgzyLkAF+XCBzTZLe3NIs4qsc4wIbeIUWVxb6chm/8ikbQn8ndk06EsJrZV/HC08EebUtgb1WTGeaEhyJGdyTVThO2dbLc+wKdrrGcmxiZEd1N6pg0G+4l8QsvMCTWJts6ZhrvVtmle6izGPfF467hLWIjM=
8
- - secure: FY5lZvsTluLglsk0j4c4rPXj0BqN80PVUzCLwFtBzhZJ/Dic8c6IGGDy91RQPoR11bcsqQgUhEOeTh0LEjmuGijZ1WIm0/0PynLZe2rxM76OA/ph5KKmYIgi5OLEkWJ8mQRLSeOqpw2BeaqW35MfhX6uItcJbEztiSgVkx01Y4g=
3
+ - 2.7.2
4
+ - 2.4.0
5
+ deploy:
6
+ provider: rubygems
7
+ edge: true
8
+
data/apralib.gemspec CHANGED
@@ -17,10 +17,12 @@ Gem::Specification.new do |spec|
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ['lib']
20
+ spec.required_ruby_version = '>= 2.4.0'
20
21
 
21
- spec.add_development_dependency 'bundler', '~> 1.3'
22
- spec.add_development_dependency 'rake'
23
- spec.add_development_dependency 'rspec', '~> 3.1.0'
22
+ spec.add_development_dependency 'bundler', '~> 2.1'
23
+ spec.add_development_dependency 'rake', '~> 13.0.0'
24
+ spec.add_development_dependency 'rspec', '~> 3.10.0'
24
25
  spec.add_development_dependency 'yard'
25
- spec.add_dependency 'savon', '~> 2.3.0'
26
+ spec.add_dependency 'savon', '~> 2.12.0'
27
+
26
28
  end
@@ -1,36 +1,46 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require_relative 'notification'
2
4
  require_relative 'response'
3
5
  require 'savon'
4
6
 
5
7
  module ApraService
6
-
8
+ # The main entry point for the library
7
9
  class Client
10
+ def initialize(username, password, proxy = nil)
11
+ wsdl_file = File.expand_path('../wsdl/ApurahanSyotto.wsdl', __dir__)
8
12
 
9
- def initialize(username, password)
10
- @client = Savon.client(wsdl: 'https://palvelu.mela.fi/Apurahailmoitukset/ws/apurahanSyottoWS?wsdl',
13
+ @client = Savon.client(wsdl: wsdl_file,
11
14
  wsse_auth: [username, password],
12
- endpoint: 'https://palvelu.mela.fi/Apurahailmoitukset/ws/apurahanSyottoWS')
15
+ endpoint: 'https://palvelurajapinta.mela.fi/Apurahailmoitukset/ApurahanSyotto',
16
+ proxy: proxy,
17
+ follow_redirects: true)
18
+ end
19
+
20
+ def type_or_array_of_type(arg, type, message)
21
+ raise ArgumentError, 'object cannot be nil' unless arg
22
+
23
+ return if arg.is_a?(type) || (arg.is_a?(Array) && arg.all? { |i| i.is_a? type })
24
+
25
+ raise ArgumentError, message
13
26
  end
14
27
 
15
28
  def send_notifications(notifications)
16
- raise ArgumentError, 'notifications object cannot be nil' unless notifications
17
- raise ArgumentError, 'notifications object must be either a Notification object or an array of Notification objects' unless
18
- (notifications.is_a? Notification or (notifications.is_a? Array and notifications.detect {|n| !n.is_a? Notification}.nil?))
29
+
30
+ type_or_array_of_type(notifications, Notification,
31
+ 'notifications object must be either a Notification object' +
32
+ 'or an array of Notification objects')
33
+
19
34
  notifications = [notifications] unless notifications.is_a? Array
20
- if notifications.count > 0
21
- message = {}
22
- message[:arg0] = notifications.map {|notification| notification.to_hash}
23
- response = @client.call(:lisaa_apurahat, :message => message)
24
- raise RuntimeError, 'An error occurred while submitting the notification' unless response.success?
35
+ if notifications.count.positive?
36
+ message = { apurahailmoitustiedot: notifications.map(&:to_hash) }
37
+ response = @client.call(:lisaa_apurahat, message: message)
38
+ raise 'An error occurred while submitting the notification' unless response.success?
39
+
25
40
  Response.from_hash(response.body)
26
41
  else
27
42
  Response.new
28
43
  end
29
44
  end
30
-
31
-
32
-
33
45
  end
34
-
35
-
36
- end
46
+ end
@@ -2,8 +2,8 @@ module ApraService
2
2
 
3
3
  class Grantee
4
4
 
5
- SSN_REGEX = /(\d{6})([-+A])(\d{3})([0-9ABCDEFHJKLMNPRSTUVWXY])/
6
- CHECK_DIGITS = %w(0 1 2 3 4 5 6 7 8 9 A B C D E F H J K L M N P R S T U V W X Y)
5
+ SSN_REGEX = /(\d{6})([-+A])(\d{3})([0-9ABCDEFHJKLMNPRSTUVWXY])/.freeze
6
+ CHECK_DIGITS = %w[0 1 2 3 4 5 6 7 8 9 A B C D E F H J K L M N P R S T U V W X Y].freeze
7
7
 
8
8
  attr_accessor :first_names, :last_name, :ssn, :address, :zip
9
9
 
@@ -26,8 +26,8 @@ module ApraService
26
26
  grantee.address = hash[:apurahansaajanosoite]
27
27
  grantee.zip = hash[:apurahansaajanpostinumero]
28
28
  grantee.first_names = [hash[:etunimi1]]
29
- grantee.first_name << hash[:etunimi2] if hash[:etunimi2]
30
- grantee.first_name << hash[:etunimi3] if hash[:etunimi3]
29
+ grantee.first_names << hash[:etunimi2] if hash[:etunimi2]
30
+ grantee.first_names << hash[:etunimi3] if hash[:etunimi3]
31
31
  grantee.ssn = hash[:henkilotunnus]
32
32
  grantee.last_name = hash[:sukunimi]
33
33
  grantee
@@ -7,8 +7,8 @@ module ApraService
7
7
  :work_end_date, :reference, :work_duration_months, :work_duration_days,
8
8
  :work_duration_years, :ignore_work_duration
9
9
 
10
- NON_NILLABLE_KEYS = [:purpose, :expense_amount, :grant_date, :granted_to_group, :work_duration_months,
11
- :work_duration_days, :work_duration_years, :grantee, :amount, :ignore_work_duration]
10
+ NON_NILLABLE_KEYS = %i[purpose expense_amount grant_date granted_to_group work_duration_months
11
+ work_duration_days work_duration_years grantee amount ignore_work_duration].freeze
12
12
 
13
13
 
14
14
  def initialize
@@ -22,7 +22,7 @@ module ApraService
22
22
 
23
23
  def to_hash
24
24
  NON_NILLABLE_KEYS.each do |key|
25
- raise RuntimeError, "Variable #{key.to_s} cannot be nil" if self.instance_variable_get("@#{key.to_s}").nil?
25
+ raise "Variable #{key} cannot be nil" if instance_variable_get("@#{key}").nil?
26
26
  end
27
27
  result = {}
28
28
  result[:kayttotarkoitus] = purpose
@@ -33,7 +33,7 @@ module ApraService
33
33
  result[:onko_myonnetty_tyoryhmalle] = granted_to_group
34
34
  result[:rahamaara] = amount
35
35
  result[:saajatiedot] = grantee.to_hash
36
- result[:sisaltaako_kuluja] = (expense_amount > 0)
36
+ result[:sisaltaako_kuluja] = expense_amount.positive?
37
37
 
38
38
  if ignore_work_duration
39
39
  result[:tyon_kesto_kuukausia] = 0
@@ -1,14 +1,14 @@
1
- module ApraService
1
+ # frozen_string_literal: true
2
2
 
3
+ module ApraService
4
+ # The response received from the WebService
3
5
  class Response
4
-
5
6
  attr_accessor :failed_notifications
6
7
 
7
8
  def initialize
8
9
  @failed_notifications = []
9
10
  end
10
11
 
11
-
12
12
  def self.from_hash(hash)
13
13
  puts hash.inspect
14
14
  response = Response.new
@@ -16,15 +16,9 @@ module ApraService
16
16
  failures = raw_response[:epaonnistuneet_ilmoitukset]
17
17
  if failures
18
18
  failures = [failures] unless failures.is_a? Array
19
- response.failed_notifications = failures.map {|notification| NotificationResponse.from_hash(notification) }
19
+ response.failed_notifications = failures.map { |notification| NotificationResponse.from_hash(notification) }
20
20
  end
21
21
  response
22
22
  end
23
-
24
-
25
23
  end
26
-
27
-
28
-
29
-
30
- end
24
+ end
@@ -1,3 +1,3 @@
1
1
  module Apralib
2
- VERSION = '0.0.3'
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -0,0 +1,103 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <wsdl:definitions name="ApurahanSyotto"
3
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
4
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
5
+ xmlns:tns="http://palvelurajapinta.mela.fi/WebService/"
6
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
7
+ targetNamespace="http://palvelurajapinta.mela.fi/WebService/">
8
+ <wsdl:types>
9
+ <xs:schema xmlns:tns="http://palvelurajapinta.mela.fi/WebService/"
10
+ targetNamespace="http://palvelurajapinta.mela.fi/WebService/"
11
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified"
12
+ attributeFormDefault="unqualified">
13
+ <xs:element type="tns:lisaaApurahat" name="lisaaApurahat" />
14
+ <xs:element type="tns:lisaaApurahatResponse" name="lisaaApurahatResponse" />
15
+
16
+ <xs:complexType name="lisaaApurahat">
17
+ <xs:sequence>
18
+ <xs:element type="tns:apurahailmoitustiedot" name="apurahailmoitustiedot" minOccurs="0" maxOccurs="unbounded" />
19
+ </xs:sequence>
20
+ </xs:complexType>
21
+ <xs:complexType name="apurahailmoitustiedot">
22
+ <xs:sequence>
23
+ <xs:element type="xs:string" name="kayttotarkoitus" />
24
+ <xs:element type="xs:string" name="kayttotarkoitustarkenne" minOccurs="0" />
25
+ <xs:element type="xs:decimal" name="kuluosuusrahamaara" minOccurs="0" />
26
+ <xs:element type="xs:string" name="kuluosuusteksti" minOccurs="0" />
27
+ <xs:element type="xs:dateTime" name="myontopaatoksenAntopvm" />
28
+ <xs:element type="xs:boolean" name="onkoMyonnettyTyoryhmalle" />
29
+ <xs:element type="xs:decimal" name="rahamaara" />
30
+ <xs:element type="tns:saajatiedot" name="saajatiedot" />
31
+ <xs:element type="xs:boolean" name="sisaltaakoKuluja" />
32
+ <xs:element type="xs:int" name="tyonKestoKuukausia" />
33
+ <xs:element type="xs:int" name="tyonKestoPaivia" />
34
+ <xs:element type="xs:int" name="tyonKestoVuosia" />
35
+ <xs:element type="xs:string" name="tyonkestoeikantaa" minOccurs="0" />
36
+ <xs:element type="xs:dateTime" name="tyoskentelynAlkamispvm" minOccurs="0" />
37
+ <xs:element type="xs:dateTime" name="tyoskentelynPaattymispvm" minOccurs="0" />
38
+ <xs:element type="xs:string" name="viite" minOccurs="0" />
39
+ </xs:sequence>
40
+ </xs:complexType>
41
+ <xs:complexType name="saajatiedot">
42
+ <xs:sequence>
43
+ <xs:element type="xs:string" name="apurahansaajanosoite" minOccurs="0" />
44
+ <xs:element type="xs:string" name="apurahansaajanpostinumero" minOccurs="0" />
45
+ <xs:element type="xs:string" name="etunimi1" />
46
+ <xs:element type="xs:string" name="etunimi2" minOccurs="0" />
47
+ <xs:element type="xs:string" name="etunimi3" minOccurs="0" />
48
+ <xs:element type="tns:HenkilotunnusTyyppi" name="henkilotunnus" />
49
+ <xs:element type="xs:string" name="sukunimi" />
50
+ </xs:sequence>
51
+ </xs:complexType>
52
+ <xs:complexType name="lisaaApurahatResponse">
53
+ <xs:sequence>
54
+ <xs:element type="tns:epaonnistunutIlmoitus" name="epaonnistuneetIlmoitukset" minOccurs="0" maxOccurs="unbounded" />
55
+ </xs:sequence>
56
+ </xs:complexType>
57
+ <xs:complexType name="epaonnistunutIlmoitus">
58
+ <xs:sequence>
59
+ <xs:element type="tns:apurahailmoitustiedot" name="ilmoitus" />
60
+ <xs:element type="xs:string" name="virhe" />
61
+ </xs:sequence>
62
+ </xs:complexType>
63
+ <xs:simpleType name="HenkilotunnusTyyppi">
64
+ <xs:restriction base="xs:string">
65
+ <xsd:pattern value="[0-3]\d[01]\d{3}[+\-A]\d{3}[0-9A-FHJ-NPR-Y]"/>
66
+ </xs:restriction>
67
+ </xs:simpleType>
68
+ </xs:schema>
69
+ </wsdl:types>
70
+ <wsdl:message name="lisaaApurahatResponse">
71
+ <wsdl:part name="parameters" element="tns:lisaaApurahatResponse">
72
+ </wsdl:part>
73
+ </wsdl:message>
74
+ <wsdl:message name="lisaaApurahat">
75
+ <wsdl:part name="parameters" element="tns:lisaaApurahat">
76
+ </wsdl:part>
77
+ </wsdl:message>
78
+ <wsdl:portType name="ApurahanSyotto">
79
+ <wsdl:operation name="lisaaApurahat">
80
+ <wsdl:input name="lisaaApurahat" message="tns:lisaaApurahat">
81
+ </wsdl:input>
82
+ <wsdl:output name="lisaaApurahatResponse" message="tns:lisaaApurahatResponse">
83
+ </wsdl:output>
84
+ </wsdl:operation>
85
+ </wsdl:portType>
86
+ <wsdl:binding type="tns:ApurahanSyotto" name="ApurahanSyottoSoapBinding">
87
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
88
+ <wsdl:operation name="lisaaApurahat">
89
+ <soap:operation style="document" soapAction="http://palvelurajapinta.mela.fi/WebService/lisaaApurahat" />
90
+ <wsdl:input name="lisaaApurahat">
91
+ <soap:body use="literal" />
92
+ </wsdl:input>
93
+ <wsdl:output name="lisaaApurahatResponse">
94
+ <soap:body use="literal" />
95
+ </wsdl:output>
96
+ </wsdl:operation>
97
+ </wsdl:binding>
98
+ <wsdl:service name="ApurahanSyotto">
99
+ <wsdl:port name="ApurahanSyottoImplPort" binding="tns:ApurahanSyottoSoapBinding">
100
+ <soap:address location="http://palvelurajapinta.mela.fi/Apurahailmoitukset/ApurahanSyotto"/>
101
+ </wsdl:port>
102
+ </wsdl:service>
103
+ </wsdl:definitions>
@@ -1,5 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require 'apralib'
3
+ require 'securerandom'
3
4
 
4
5
  module ApraService
5
6
 
@@ -9,10 +10,11 @@ module ApraService
9
10
  def get_client
10
11
  credentials = {}
11
12
  credentials_file = File.join(File.dirname(__FILE__), 'apra_credentials.yml')
12
- credentials = YAML.load(File.read(credentials_file)) if File.exists?(credentials_file)
13
+ credentials = YAML.load(File.read(credentials_file)) if File.exist?(credentials_file)
13
14
  user = credentials['user'] || ENV['APRA_USER']
14
15
  password = credentials['password'] || ENV['APRA_PASSWORD']
15
- Client.new(user, password)
16
+ proxy = credentials['proxy'] || ENV['PROXY_URL']
17
+ Client.new(user, password, proxy)
16
18
  end
17
19
 
18
20
 
@@ -20,7 +22,7 @@ module ApraService
20
22
 
21
23
  it 'should create a valid object' do
22
24
 
23
- service = Client.new('user','password')
25
+ service = Client.new('user', 'password')
24
26
  expect(service).not_to be_nil
25
27
 
26
28
  end
@@ -51,7 +53,11 @@ module ApraService
51
53
  notification.work_start_date = Date.today
52
54
  notification.work_end_date = Date.today >> 1
53
55
  notification1 = Notification.new
54
- notification1.grantee = grantee
56
+ grantee1 = Grantee.new
57
+ grantee1.first_names='Matti'
58
+ grantee1.last_name = 'Matelija'
59
+ grantee1.ssn = '111111-111C'
60
+ notification1.grantee = grantee1
55
61
  notification1.granted_to_group = false
56
62
  notification1.expense_amount = 0
57
63
  notification1.amount = 10000
@@ -67,9 +73,11 @@ module ApraService
67
73
  response = service.send_notifications([notification, notification1])
68
74
  expect(response).not_to be_nil
69
75
  failed_notifications = response.failed_notifications
76
+ puts(failed_notifications)
70
77
  expect(failed_notifications).not_to be_nil
71
78
  expect(failed_notifications).to be_a Array
72
79
  expect(failed_notifications.count).to eq(1)
80
+
73
81
  notification_response = failed_notifications[0]
74
82
  expect(notification_response.error).not_to be_nil
75
83
  expect(notification_response.notification.reference).to eq(notification.reference)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apralib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marco Sandrini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-02 00:00:00.000000000 Z
11
+ date: 2021-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,42 +16,42 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.3'
19
+ version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.3'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 13.0.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 13.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.1.0
47
+ version: 3.10.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.1.0
54
+ version: 3.10.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: yard
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 2.3.0
75
+ version: 2.12.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.3.0
82
+ version: 2.12.0
83
83
  description: A Ruby client for the Apra Service
84
84
  email:
85
85
  - nessche@gmail.com
@@ -88,6 +88,8 @@ extensions: []
88
88
  extra_rdoc_files: []
89
89
  files:
90
90
  - ".gitignore"
91
+ - ".rubocop.yml"
92
+ - ".ruby-version"
91
93
  - ".travis.yml"
92
94
  - Gemfile
93
95
  - LICENSE.txt
@@ -101,6 +103,7 @@ files:
101
103
  - lib/apralib/notification_response.rb
102
104
  - lib/apralib/response.rb
103
105
  - lib/apralib/version.rb
106
+ - lib/wsdl/ApurahanSyotto.wsdl
104
107
  - spec/lib/apra_service_spec.rb
105
108
  - spec/lib/grantee_spec.rb
106
109
  - spec/spec_helper.rb
@@ -116,15 +119,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
119
  requirements:
117
120
  - - ">="
118
121
  - !ruby/object:Gem::Version
119
- version: '0'
122
+ version: 2.4.0
120
123
  required_rubygems_version: !ruby/object:Gem::Requirement
121
124
  requirements:
122
125
  - - ">="
123
126
  - !ruby/object:Gem::Version
124
127
  version: '0'
125
128
  requirements: []
126
- rubyforge_project:
127
- rubygems_version: 2.2.2
129
+ rubygems_version: 3.0.8
128
130
  signing_key:
129
131
  specification_version: 4
130
132
  summary: A Ruby library to submit documents to the Apra Service run by Maatalousyrittäjien
@@ -133,4 +135,3 @@ test_files:
133
135
  - spec/lib/apra_service_spec.rb
134
136
  - spec/lib/grantee_spec.rb
135
137
  - spec/spec_helper.rb
136
- has_rdoc: