irs_forms 0.0.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.
Files changed (51) hide show
  1. data/.document +5 -0
  2. data/Gemfile +18 -0
  3. data/Gemfile.lock +57 -0
  4. data/LICENSE.txt +20 -0
  5. data/README.rdoc +27 -0
  6. data/Rakefile +50 -0
  7. data/VERSION +1 -0
  8. data/irs_forms.gemspec +110 -0
  9. data/lib/irs_forms/form.rb +57 -0
  10. data/lib/irs_forms/form1096.rb +89 -0
  11. data/lib/irs_forms/form1099.rb +47 -0
  12. data/lib/irs_forms/form1099_int.rb +87 -0
  13. data/lib/irs_forms/form1099_misc.rb +77 -0
  14. data/lib/irs_forms.rb +13 -0
  15. data/spec/assets/copyA_with_data_and_no_template.pdf-0.12.0.pdf +315 -0
  16. data/spec/assets/copyA_with_data_and_template.pdf-0.12.0.pdf +0 -0
  17. data/spec/assets/copyA_with_template.pdf-0.12.0.pdf +0 -0
  18. data/spec/assets/f1096_for_1099int.pdf-0.12.0.pdf +3596 -1
  19. data/spec/assets/f1096_with_data_and_no_template.pdf-0.12.0.pdf +146 -0
  20. data/spec/assets/f1096_with_data_and_template.pdf-0.12.0.pdf +3596 -1
  21. data/spec/assets/f1096_with_data_and_template_offset.pdf-0.12.0.pdf +3596 -1
  22. data/spec/assets/f1096_with_template.pdf-0.12.0.pdf +3503 -1
  23. data/spec/assets/f1099intA_data_and_template.pdf-0.12.0.pdf +0 -0
  24. data/spec/assets/f1099intA_data_and_template_offset.pdf-0.12.0.pdf +0 -0
  25. data/spec/assets/f1099intB_data_and_template.pdf-0.12.0.pdf +0 -0
  26. data/spec/assets/f1099intC_data_and_template.pdf-0.12.0.pdf +0 -0
  27. data/spec/assets/f1099msc1_data_and_template.pdf-0.12.0.pdf +0 -0
  28. data/spec/assets/f1099msc2_data_and_template.pdf-0.12.0.pdf +0 -0
  29. data/spec/assets/f1099mscA_data_and_template.pdf-0.12.0.pdf +0 -0
  30. data/spec/assets/f1099mscA_data_and_template_offset.pdf-0.12.0.pdf +0 -0
  31. data/spec/assets/f1099mscB_data_and_template.pdf-0.12.0.pdf +0 -0
  32. data/spec/assets/f1099mscC_data_and_template.pdf-0.12.0.pdf +0 -0
  33. data/spec/form1096_spec.rb +65 -0
  34. data/spec/form1099_int_spec.rb +52 -0
  35. data/spec/form1099_misc_spec.rb +118 -0
  36. data/spec/irs_forms_spec.rb +5 -0
  37. data/spec/spec_helper.rb +35 -0
  38. data/templates/NOTES +5 -0
  39. data/templates/f1096--2012.pdf +0 -0
  40. data/templates/f1096.pdf +0 -0
  41. data/templates/f1099int--2012.pdf +0 -0
  42. data/templates/f1099int-copyA.pdf +0 -0
  43. data/templates/f1099int-copyB.pdf +0 -0
  44. data/templates/f1099int-copyC.pdf +0 -0
  45. data/templates/f1099msc--2012.pdf +0 -0
  46. data/templates/f1099msc-copy1.pdf +0 -0
  47. data/templates/f1099msc-copy2.pdf +0 -0
  48. data/templates/f1099msc-copyA.pdf +0 -0
  49. data/templates/f1099msc-copyB.pdf +0 -0
  50. data/templates/f1099msc-copyC.pdf +0 -0
  51. metadata +188 -0
@@ -0,0 +1,65 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Form1096" do
4
+ before(:each) do
5
+ @form1096 = IrsForms::Form1096.new
6
+ end
7
+
8
+ it "should generate the template_filepath" do
9
+ dir = File.expand_path(File.dirname(__FILE__) + '/../templates')
10
+ @form1096.template_filepath.should == "#{dir}/f1096.pdf"
11
+ end
12
+
13
+ it "should generate PDF on the template" do
14
+ pdf = @form1096.to_pdf(:with_template => true)
15
+ write_content_to_file('f1096_with_template.pdf', pdf)
16
+ assert_data_matches_file_content('f1096_with_template.pdf', pdf)
17
+ end
18
+
19
+ describe "with a three forms of data" do
20
+ before(:each) do
21
+ @form1096.data = {
22
+ :filer_name => 'Filer Name',
23
+ :filer_street_address => 'Street Address Line 1',
24
+ :filer_city_state_zip => 'City, State 11111',
25
+ :contact_name => 'John Smith',
26
+ :telephone_number => '(555) 555-5555',
27
+ :email_address => 'john.smith@example.com',
28
+ :fax_number => '(555) 555-5556',
29
+ :employer_identification_number => '111-111111',
30
+ :social_security_number => '111-11-1111',
31
+ :total_number_of_forms => '123',
32
+ :total_amount_reported => '123456.78',
33
+ :type_of_form => '1099msc'
34
+ }
35
+ end
36
+
37
+ it "should generate PDF with data on the template" do
38
+ pdf = @form1096.to_pdf(:with_template => true)
39
+ write_content_to_file('f1096_with_data_and_template.pdf', pdf)
40
+ assert_data_matches_file_content('f1096_with_data_and_template.pdf', pdf)
41
+ end
42
+
43
+ it "check mark for 1099int in correct location" do
44
+ @form1096.data[:type_of_form] = '1099int'
45
+ pdf = @form1096.to_pdf(:with_template => true)
46
+ write_content_to_file('f1096_for_1099int.pdf', pdf)
47
+ assert_data_matches_file_content('f1096_for_1099int.pdf', pdf)
48
+ end
49
+
50
+ it "should generate PDF with data and no template" do
51
+ pdf = @form1096.to_pdf # default is to not use template
52
+ write_content_to_file('f1096_with_data_and_no_template.pdf', pdf)
53
+ assert_data_matches_file_content('f1096_with_data_and_no_template.pdf', pdf)
54
+ end
55
+
56
+ it "should generate PDF with data on the template with test offset" do
57
+ @form1096.x_offset = 20 # right 20px
58
+ @form1096.y_offset = -20 # down 20px
59
+ pdf = @form1096.to_pdf(:with_template => true)
60
+ write_content_to_file('f1096_with_data_and_template_offset.pdf', pdf, true)
61
+ assert_data_matches_file_content('f1096_with_data_and_template_offset.pdf', pdf)
62
+ end
63
+ end
64
+
65
+ end
@@ -0,0 +1,52 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Form1099 INT" do
4
+ before(:all) do
5
+ @form1099 = IrsForms::Form1099Int.new(data: [
6
+ {:payer_contact_information => [
7
+ 'Payer Name, LLC', 'Address Line 1',
8
+ 'City, State 00000', '(555) 555-5555'],
9
+ :payer_federal_id => 'XX-XXXXXXX',
10
+ :recipient_federal_id => 'YY-YYYYYY1',
11
+ :recipient_name => 'Recipient Name',
12
+ :recipient_street_address => 'Street Address Line 1',
13
+ :recipient_city_state_zip => 'City, State 11111',
14
+ :recipient_account_number => 'XXXXX',
15
+ :interest_income => '9875383.39'},
16
+ {:payer_contact_information => [
17
+ 'Payer Name, LLC', 'Address Line 1',
18
+ 'City, State 00000', '(555) 555-5555'],
19
+ :payer_federal_id => 'XX-XXXXXXX',
20
+ :recipient_federal_id => 'YY-YYYYYY2',
21
+ :recipient_name => 'Recipient Name',
22
+ :recipient_street_address => 'Street Address Line 1',
23
+ :recipient_city_state_zip => 'A very long name for a City, State 11111',
24
+ :interest_income => '999'},
25
+ {:payer_contact_information => [
26
+ 'Payer Name, LLC', 'Address Line 1',
27
+ 'City, State 00000', '(555) 555-5555'],
28
+ :payer_federal_id => 'XX-XXXXXXX',
29
+ :recipient_federal_id => 'YY-YYYYYY3',
30
+ :recipient_name => 'Recipient Name',
31
+ :recipient_street_address => 'Street Address Line 1',
32
+ :recipient_city_state_zip => 'City, State 11111',
33
+ :interest_income => '9'}
34
+ ])
35
+ end
36
+ it "should print correctly for each copy" do
37
+ IrsForms::Form1099Int::COPIES.each do |copy|
38
+ @form1099.copy = copy
39
+ pdf = @form1099.to_pdf(:with_template => true)
40
+ write_content_to_file("f1099int#{copy}_data_and_template.pdf", pdf)
41
+ assert_data_matches_file_content("f1099int#{copy}_data_and_template.pdf", pdf)
42
+ end
43
+ end
44
+ it "should generate with offset" do
45
+ @form1099.x_offset = 20 # right 20px
46
+ @form1099.y_offset = -20 # down 20px
47
+ @form1099.copy = 'A'
48
+ pdf = @form1099.to_pdf(:with_template => true)
49
+ write_content_to_file("f1099intA_data_and_template_offset.pdf", pdf)
50
+ assert_data_matches_file_content("f1099intA_data_and_template_offset.pdf", pdf)
51
+ end
52
+ end
@@ -0,0 +1,118 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "Form1099Misc Copy A" do
4
+ before(:each) do
5
+ @form1099 = IrsForms::Form1099Misc.new(copy: 'A')
6
+ end
7
+
8
+ it "should generate the template_filepath" do
9
+ dir = File.expand_path(File.dirname(__FILE__) + '/../templates')
10
+ @form1099.template_filepath.should == "#{dir}/f1099msc-copyA.pdf"
11
+ end
12
+
13
+ it "should generate PDF on the template" do
14
+ pdf = @form1099.to_pdf(:with_template => true)
15
+ write_content_to_file('copyA_with_template.pdf', pdf)
16
+ assert_data_matches_file_content('copyA_with_template.pdf', pdf)
17
+ end
18
+
19
+ describe "with a three forms of data" do
20
+ before(:each) do
21
+ @form1099.data << {
22
+ :payer_contact_information => [
23
+ 'Payer Name, LLC', 'Address Line 1',
24
+ 'City, State 00000', '(555) 555-5555'],
25
+ :payer_federal_id => 'XX-XXXXXXX',
26
+ :recipient_federal_id => 'YY-YYYYYY1',
27
+ :recipient_name => 'Recipient Name',
28
+ :recipient_street_address => 'Street Address Line 1',
29
+ :recipient_city_state_zip => 'Long Name for a City, State 11111-1111',
30
+ :recipient_account_number => 'XXXXX',
31
+ :nonemployee_compensation => '1234.56'
32
+ }
33
+
34
+ @form1099.data << {
35
+ :payer_contact_information => [
36
+ 'Payer Name, LLC', 'Address Line 1',
37
+ 'City, State 00000', '(555) 555-5555'],
38
+ :payer_federal_id => 'XX-XXXXXXX',
39
+ :recipient_federal_id => 'YY-YYYYYY2',
40
+ :recipient_name => 'Recipient Name',
41
+ :recipient_street_address => 'Street Address Line 1',
42
+ :recipient_city_state_zip => 'City, State 11111',
43
+ :recipient_account_number => 'XXXXX',
44
+ :nonemployee_compensation => '999'
45
+ }
46
+
47
+ @form1099.data << {
48
+ :payer_contact_information => [
49
+ 'Payer Name, LLC', 'Address Line 1',
50
+ 'City, State 00000', '(555) 555-5555'],
51
+ :payer_federal_id => 'XX-XXXXXXX',
52
+ :recipient_federal_id => 'YY-YYYYYY3',
53
+ :recipient_name => 'Recipient Name',
54
+ :recipient_street_address => 'Street Address Line 1',
55
+ :recipient_city_state_zip => 'City, State 11111',
56
+ :recipient_account_number => 'XXXXX',
57
+ :nonemployee_compensation => '9875383.39'
58
+ }
59
+ end
60
+
61
+ it "should generate PDF with data on the template" do
62
+ pdf = @form1099.to_pdf(:with_template => true)
63
+ write_content_to_file('copyA_with_data_and_template.pdf', pdf)
64
+ assert_data_matches_file_content('copyA_with_data_and_template.pdf', pdf)
65
+ end
66
+
67
+ it "should generate PDF with data and no template" do
68
+ pdf = @form1099.to_pdf # default is to not use template
69
+ write_content_to_file('copyA_with_data_and_no_template.pdf', pdf)
70
+ assert_data_matches_file_content('copyA_with_data_and_no_template.pdf', pdf)
71
+ end
72
+ end
73
+
74
+ end
75
+
76
+ describe "Form1099" do
77
+ before(:all) do
78
+ @form1099 = IrsForms::Form1099Misc.new(data: [
79
+ {:payer_contact_information => [
80
+ 'Payer Name, LLC', 'Address Line 1',
81
+ 'City, State 00000', '(555) 555-5555'],
82
+ :payer_federal_id => 'XX-XXXXXXX',
83
+ :recipient_federal_id => 'YY-YYYYYY3',
84
+ :recipient_name => 'Recipient Name',
85
+ :recipient_street_address => 'Street Address Line 1',
86
+ :recipient_city_state_zip => 'City, State 11111',
87
+ :recipient_account_number => 'XXXXX',
88
+ :nonemployee_compensation => '9875383.39'},
89
+ {:payer_contact_information => [
90
+ 'Payer Name, LLC', 'Address Line 1',
91
+ 'City, State 00000', '(555) 555-5555'],
92
+ :payer_federal_id => 'XX-XXXXXXX',
93
+ :recipient_federal_id => 'YY-YYYYYY2',
94
+ :recipient_name => 'Recipient Name',
95
+ :recipient_street_address => 'Street Address Line 1',
96
+ :recipient_city_state_zip => 'City, State 11111',
97
+ :recipient_account_number => 'XXXXX',
98
+ :nonemployee_compensation => '999'}
99
+ ])
100
+ end
101
+ it "should print correctly for each copy" do
102
+ IrsForms::Form1099Misc::COPIES.each do |copy|
103
+ @form1099.copy = copy
104
+ pdf = @form1099.to_pdf(:with_template => true)
105
+ write_content_to_file("f1099msc#{copy}_data_and_template.pdf", pdf)
106
+ assert_data_matches_file_content("f1099msc#{copy}_data_and_template.pdf", pdf)
107
+ end
108
+ end
109
+
110
+ it "should generate with offset" do
111
+ @form1099.x_offset = 20 # right 20px
112
+ @form1099.y_offset = -20 # down 20px
113
+ @form1099.copy = 'A'
114
+ pdf = @form1099.to_pdf(:with_template => true)
115
+ write_content_to_file("f1099mscA_data_and_template_offset.pdf", pdf, true)
116
+ assert_data_matches_file_content("f1099mscA_data_and_template_offset.pdf", pdf)
117
+ end
118
+ end
@@ -0,0 +1,5 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "irs_forms" do
4
+
5
+ end
@@ -0,0 +1,35 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'irs_forms'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
13
+
14
+ TEST_ASSETS = File.expand_path("assets", File.dirname(__FILE__)).to_s
15
+
16
+ # Helper to provide asset path given the "base name" of the file.
17
+ # For example, if +file+ is "default_render", asset_path returns
18
+ # "/path/to/prawnto/spec/assets/default_render-#{prawn version}.pdf"
19
+ def asset_path(file)
20
+ prawn_version = Gem.loaded_specs["prawn"].version.to_s.inspect
21
+ TEST_ASSETS + "/#{file}-#{prawn_version.gsub('"','')}.pdf"
22
+ end
23
+
24
+ def assert_data_matches_file_content(file, data)
25
+ data.bytes.to_a.should == File.open(asset_path(file)).read.bytes.to_a
26
+ end
27
+
28
+ def write_content_to_file(file, content, force_write=false)
29
+ return nil unless force_write
30
+
31
+ f = File.new(asset_path(file), 'w')
32
+ f.write content
33
+ f.close
34
+ true
35
+ end
data/templates/NOTES ADDED
@@ -0,0 +1,5 @@
1
+ Prior year forms can be obtained from:
2
+ www.irs.gov/pub/irs-prior/f{form_name}--{YYYY}.pdf
3
+
4
+ E.g., for the 2012 Form 1099 MISC:
5
+ www.irs.gov/pub/irs-prior/f1099msc--2012.pdf
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
metadata ADDED
@@ -0,0 +1,188 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: irs_forms
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Ryan Winograd
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-29 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: &12621680 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *12621680
25
+ - !ruby/object:Gem::Dependency
26
+ name: prawn
27
+ requirement: &12619500 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.12.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *12619500
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &12615260 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *12615260
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &12636460 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.8.3
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *12636460
58
+ - !ruby/object:Gem::Dependency
59
+ name: appraisal
60
+ requirement: &12632960 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *12632960
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ requirement: &12682400 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 2.8.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *12682400
80
+ - !ruby/object:Gem::Dependency
81
+ name: rdoc
82
+ requirement: &12691700 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: '3.12'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *12691700
91
+ - !ruby/object:Gem::Dependency
92
+ name: bundler
93
+ requirement: &12687420 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: 1.0.0
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *12687420
102
+ description: Generate IRS forms with your data
103
+ email: ryan@thewinograds.com
104
+ executables: []
105
+ extensions: []
106
+ extra_rdoc_files:
107
+ - LICENSE.txt
108
+ - README.rdoc
109
+ files:
110
+ - .document
111
+ - Gemfile
112
+ - Gemfile.lock
113
+ - LICENSE.txt
114
+ - README.rdoc
115
+ - Rakefile
116
+ - VERSION
117
+ - irs_forms.gemspec
118
+ - lib/irs_forms.rb
119
+ - lib/irs_forms/form.rb
120
+ - lib/irs_forms/form1096.rb
121
+ - lib/irs_forms/form1099.rb
122
+ - lib/irs_forms/form1099_int.rb
123
+ - lib/irs_forms/form1099_misc.rb
124
+ - spec/assets/copyA_with_data_and_no_template.pdf-0.12.0.pdf
125
+ - spec/assets/copyA_with_data_and_template.pdf-0.12.0.pdf
126
+ - spec/assets/copyA_with_template.pdf-0.12.0.pdf
127
+ - spec/assets/f1096_for_1099int.pdf-0.12.0.pdf
128
+ - spec/assets/f1096_with_data_and_no_template.pdf-0.12.0.pdf
129
+ - spec/assets/f1096_with_data_and_template.pdf-0.12.0.pdf
130
+ - spec/assets/f1096_with_data_and_template_offset.pdf-0.12.0.pdf
131
+ - spec/assets/f1096_with_template.pdf-0.12.0.pdf
132
+ - spec/assets/f1099intA_data_and_template.pdf-0.12.0.pdf
133
+ - spec/assets/f1099intA_data_and_template_offset.pdf-0.12.0.pdf
134
+ - spec/assets/f1099intB_data_and_template.pdf-0.12.0.pdf
135
+ - spec/assets/f1099intC_data_and_template.pdf-0.12.0.pdf
136
+ - spec/assets/f1099msc1_data_and_template.pdf-0.12.0.pdf
137
+ - spec/assets/f1099msc2_data_and_template.pdf-0.12.0.pdf
138
+ - spec/assets/f1099mscA_data_and_template.pdf-0.12.0.pdf
139
+ - spec/assets/f1099mscA_data_and_template_offset.pdf-0.12.0.pdf
140
+ - spec/assets/f1099mscB_data_and_template.pdf-0.12.0.pdf
141
+ - spec/assets/f1099mscC_data_and_template.pdf-0.12.0.pdf
142
+ - spec/form1096_spec.rb
143
+ - spec/form1099_int_spec.rb
144
+ - spec/form1099_misc_spec.rb
145
+ - spec/irs_forms_spec.rb
146
+ - spec/spec_helper.rb
147
+ - templates/NOTES
148
+ - templates/f1096--2012.pdf
149
+ - templates/f1096.pdf
150
+ - templates/f1099int--2012.pdf
151
+ - templates/f1099int-copyA.pdf
152
+ - templates/f1099int-copyB.pdf
153
+ - templates/f1099int-copyC.pdf
154
+ - templates/f1099msc--2012.pdf
155
+ - templates/f1099msc-copy1.pdf
156
+ - templates/f1099msc-copy2.pdf
157
+ - templates/f1099msc-copyA.pdf
158
+ - templates/f1099msc-copyB.pdf
159
+ - templates/f1099msc-copyC.pdf
160
+ homepage: http://github.com/ValencePM/irs_forms
161
+ licenses:
162
+ - MIT
163
+ post_install_message:
164
+ rdoc_options: []
165
+ require_paths:
166
+ - lib
167
+ required_ruby_version: !ruby/object:Gem::Requirement
168
+ none: false
169
+ requirements:
170
+ - - ! '>='
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ segments:
174
+ - 0
175
+ hash: 2355726648018043542
176
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 1.8.10
185
+ signing_key:
186
+ specification_version: 3
187
+ summary: Generate IRS forms with your data
188
+ test_files: []