planet_express 0.0.3 → 0.0.7

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/.gitignore CHANGED
@@ -9,7 +9,6 @@ Gemfile.lock
9
9
  InstalledFiles
10
10
  _yardoc
11
11
  coverage
12
- doc/
13
12
  lib/bundler/man
14
13
  pkg
15
14
  rdoc
data/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ Changelog
2
+ =========
3
+
4
+ ### 0.0.7
5
+ - If Rails.logger exists use it, if not switch to log4r.
6
+
7
+ ### 0.0.6
8
+ - Start using log4r instead of Logger.new (now logs are namespaced)
9
+ - Minor changes to README and documentation. Added Changelog and silverpop api.
10
+ - Adding name spaced exceptions to handle custom errors.
11
+
12
+ ### 0.0.5
13
+ - Start using job.configure { } to change the Silverpop gateway url.
14
+ - Start using Pry instead of IRB.
15
+ - Start using Awesome Print instead of inspect.
16
+
17
+ ### 0.0.4
18
+ - Minor changes to README and documentation.
19
+
20
+ ### 0.0.3
21
+ - First usable version. Seems to be working.
22
+
23
+ ### 0.0.2
24
+ - Adding a few clasess, still a mess.
25
+
26
+ ### 0.0.1
27
+ - Empty gem using bundler's boilerplate.
28
+
29
+ TODO
30
+ ----
31
+
32
+ - Include Yard for documentation http://yardoc.org
33
+ - Let change the gateway from the Class, instead from the instance
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- planet_express (0.0.3)
4
+ planet_express (0.0.7)
5
5
  activesupport
6
6
  hpricot
7
+ log4r
7
8
 
8
9
  GEM
9
10
  remote: http://rubygems.org/
@@ -11,6 +12,8 @@ GEM
11
12
  activesupport (3.2.8)
12
13
  i18n (~> 0.6)
13
14
  multi_json (~> 1.0)
15
+ awesome_print (1.1.0)
16
+ coderay (1.0.8)
14
17
  diff-lcs (1.1.3)
15
18
  guard (1.4.0)
16
19
  listen (>= 0.4.2)
@@ -24,7 +27,13 @@ GEM
24
27
  hpricot (0.8.6)
25
28
  i18n (0.6.1)
26
29
  listen (0.5.3)
27
- multi_json (1.3.6)
30
+ log4r (1.1.10)
31
+ method_source (0.7.1)
32
+ multi_json (1.3.7)
33
+ pry (0.9.9.6)
34
+ coderay (~> 1.0.5)
35
+ method_source (~> 0.7.1)
36
+ slop (>= 2.4.4, < 3)
28
37
  rb-fsevent (0.9.2)
29
38
  rspec (2.11.0)
30
39
  rspec-core (~> 2.11.0)
@@ -35,16 +44,19 @@ GEM
35
44
  diff-lcs (~> 1.1.3)
36
45
  rspec-mocks (2.11.3)
37
46
  ruby_gntp (0.3.4)
47
+ slop (2.4.4)
38
48
  thor (0.16.0)
39
49
 
40
50
  PLATFORMS
41
51
  ruby
42
52
 
43
53
  DEPENDENCIES
54
+ awesome_print
44
55
  guard
45
56
  guard-bundler
46
57
  guard-rspec
47
58
  planet_express!
59
+ pry
48
60
  rb-fsevent
49
61
  rspec
50
62
  ruby_gntp
data/README.md CHANGED
@@ -1,118 +1,55 @@
1
1
  Planet Express.rb
2
2
  =================
3
3
 
4
+ Description
5
+ -----------
6
+
4
7
  Planet Express, Inc. is an intergalactic email delivery <strike>company</strike>
5
8
  lib built in Ruby. Is meant to be used with Silverpop mailing system, to provide
6
9
  an easy way to send emails. We're using it with Rails 3 apps.
7
10
 
8
11
  > "Our crew is replaceable. Your <strike>package</strike> email isn't."
9
12
 
10
- **@MarioZaizar**
11
-
12
- ## Installation
13
- ---------------
13
+ Features
14
+ --------
14
15
 
15
- Add this line to your application's Gemfile:
16
+ - Send emails using Silverpop.
16
17
 
17
- ```
18
- gem 'planet_express'
19
- ```
20
-
21
- And then execute:
22
-
23
- ```
24
- $ bundle
25
- ```
26
-
27
- Or install it yourself as:
28
-
29
- ```
30
- $ gem install planet_express
31
- ```
32
-
33
- Usage
34
- -----
18
+ ### Examples
35
19
 
36
20
  You only need three things, the package, the destination and the data.
21
+ Then create a new deliver, prepare the ship and deliver it!
37
22
 
38
23
  ```
24
+ require 'planet_express'
25
+
39
26
  recipient = 'mariozaizar@gmail.com'
40
27
  package_id = 1807752
41
- cargo = {
42
- fist_name: 'Mario',
43
- last_name: 'Zaizar',
44
- bill_float_test_body: "<h1>Good news everyone!</h1><img src='http://goo.gl/XazeH'>"
45
- }
46
- ```
28
+ cargo = { bill_float_test_body: "<h1>Good news everyone!</h1><img src='http://goo.gl/XazeH'>" }
47
29
 
48
- Then create a new deliver, prepare the ship and deliver it!
49
-
50
- ```
51
30
  job = PlanetExpress::Delivery.new
52
31
  request = job.prepare package_id, recipient, cargo
53
32
  response = job.deliver!
54
33
  ```
55
34
 
56
- Silverpop API
57
- -------------
58
-
59
- We're using this <https://transact5.silverpop.com/XTMail> end point.
60
-
61
- ### Request:
35
+ ### Configuration
62
36
 
63
37
  ```
64
- <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
65
- <XTMAILING>
66
- <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
67
- <SHOW_ALL_SEND_DETAIL>true</SHOW_ALL_SEND_DETAIL>
68
- <SEND_AS_BATCH>false</SEND_AS_BATCH>
69
- <NO_RETRY_ON_FAILURE>false</NO_RETRY_ON_FAILURE>
70
- <RECIPIENT>
71
- <EMAIL>mariozaizar@gmail.com</EMAIL>
72
- <BODY_TYPE>HTML</BODY_TYPE>
73
- <PERSONALIZATION>
74
- <TAG_NAME>first_name</TAG_NAME>
75
- <VALUE><![CDATA[Mario]]></VALUE>
76
- </PERSONALIZATION>
77
- <PERSONALIZATION>
78
- <TAG_NAME>last_name</TAG_NAME>
79
- <VALUE><![CDATA[Zaizar]]></VALUE>
80
- </PERSONALIZATION>
81
- </RECIPIENT>
82
- </XTMAILING>
38
+ job.configure do |config|
39
+ config.gateway_url = 'https://transact3.silverpop.com/XTMail'
40
+ end
83
41
  ```
84
42
 
85
- ### Response:
43
+ Installation
44
+ ------------
86
45
 
87
- Succcess:
46
+ Add this line to your application's Gemfile `gem 'planet_express'` and then
47
+ execute `bundle install`. Or install it yourself as: `gem install planet_express`.
88
48
 
89
- ```
90
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
91
- <XTMAILING_RESPONSE>
92
- <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
93
- <RECIPIENTS_RECEIVED>1</RECIPIENTS_RECEIVED>
94
- <EMAILS_SENT>1</EMAILS_SENT>
95
- <NUMBER_ERRORS>0</NUMBER_ERRORS>
96
- <STATUS>0</STATUS>
97
- <ERROR_CODE></ERROR_CODE>
98
- <ERROR_STRING></ERROR_STRING>
99
- </XTMAILING_RESPONSE>
100
- ```
101
-
102
- When something is wrong:
49
+ Silverpop API
50
+ -------------
103
51
 
104
- ```
105
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
106
- <XTMAILING_RESPONSE>
107
- <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
108
- <RECIPIENTS_RECEIVED>1</RECIPIENTS_RECEIVED>
109
- <EMAILS_SENT>0</EMAILS_SENT>
110
- <NUMBER_ERRORS>1</NUMBER_ERRORS>
111
- <STATUS>2</STATUS>
112
- <ERROR_CODE>2</ERROR_CODE>
113
- <ERROR_STRING>something wrong!</ERROR_STRING>
114
- </XTMAILING_RESPONSE>
115
- ```
52
+ Check this file: [doc/silverpop_api.md](./doc/silverpop_api.md)
116
53
 
117
54
  Contributing
118
55
  ------------
@@ -122,3 +59,5 @@ Contributing
122
59
  3. Commit your changes (`git commit -am 'Add some feature'`)
123
60
  4. Push to the branch (`git push origin my-new-feature`)
124
61
  5. Create new Pull Request
62
+
63
+ **@MarioZaizar**
File without changes
@@ -0,0 +1,79 @@
1
+ Silverpop API
2
+ -------------
3
+
4
+ We're using this <https://transact5.silverpop.com/XTMail> end point.
5
+
6
+ ### Request:
7
+
8
+ ```
9
+ <?xml version='1.0' encoding='UTF-8' standalone='yes'?>
10
+ <XTMAILING>
11
+ <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
12
+ <SHOW_ALL_SEND_DETAIL>true</SHOW_ALL_SEND_DETAIL>
13
+ <SEND_AS_BATCH>false</SEND_AS_BATCH>
14
+ <NO_RETRY_ON_FAILURE>false</NO_RETRY_ON_FAILURE>
15
+ <RECIPIENT>
16
+ <EMAIL>mariozaizar@gmail.com</EMAIL>
17
+ <BODY_TYPE>HTML</BODY_TYPE>
18
+ <PERSONALIZATION>
19
+ <TAG_NAME>first_name</TAG_NAME>
20
+ <VALUE><![CDATA[Mario]]></VALUE>
21
+ </PERSONALIZATION>
22
+ <PERSONALIZATION>
23
+ <TAG_NAME>last_name</TAG_NAME>
24
+ <VALUE><![CDATA[Zaizar]]></VALUE>
25
+ </PERSONALIZATION>
26
+ </RECIPIENT>
27
+ </XTMAILING>
28
+ ```
29
+
30
+ ### Response:
31
+
32
+ Succcess:
33
+
34
+ ```
35
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
36
+ <XTMAILING_RESPONSE>
37
+ <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
38
+ <RECIPIENTS_RECEIVED>1</RECIPIENTS_RECEIVED>
39
+ <EMAILS_SENT>1</EMAILS_SENT>
40
+ <NUMBER_ERRORS>0</NUMBER_ERRORS>
41
+ <STATUS>0</STATUS>
42
+ <ERROR_CODE></ERROR_CODE>
43
+ <ERROR_STRING></ERROR_STRING>
44
+ </XTMAILING_RESPONSE>
45
+ ```
46
+
47
+ When something is wrong:
48
+
49
+ ```
50
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
51
+ <XTMAILING_RESPONSE>
52
+ <CAMPAIGN_ID>1807752</CAMPAIGN_ID>
53
+ <RECIPIENTS_RECEIVED>1</RECIPIENTS_RECEIVED>
54
+ <EMAILS_SENT>0</EMAILS_SENT>
55
+ <NUMBER_ERRORS>1</NUMBER_ERRORS>
56
+ <STATUS>2</STATUS>
57
+ <ERROR_CODE>2</ERROR_CODE>
58
+ <ERROR_STRING>something wrong!</ERROR_STRING>
59
+ </XTMAILING_RESPONSE>
60
+ ```
61
+
62
+ ```
63
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
64
+ <XTMAILING_RESPONSE>
65
+ <CAMPAIGN_ID>4914098</CAMPAIGN_ID>
66
+ <RECIPIENTS_RECEIVED>1</RECIPIENTS_RECEIVED>
67
+ <EMAILS_SENT>0</EMAILS_SENT>
68
+ <NUMBER_ERRORS>1</NUMBER_ERRORS>
69
+ <STATUS>2</STATUS>
70
+ <ERROR_CODE>0</ERROR_CODE>
71
+ <ERROR_STRING></ERROR_STRING>
72
+ <RECIPIENT_DETAIL>
73
+ <EMAIL>user_email</EMAIL>
74
+ <SEND_STATUS>1</SEND_STATUS>
75
+ <ERROR_CODE>4</ERROR_CODE>
76
+ <ERROR_STRING>invalid email address user_email</ERROR_STRING>
77
+ </RECIPIENT_DETAIL>
78
+ </XTMAILING_RESPONSE>
79
+ ```
@@ -0,0 +1,9 @@
1
+ module PlanetExpress
2
+ class Configuration
3
+ attr_accessor :gateway_url
4
+
5
+ def initialize *args
6
+ @gateway_url = 'https://transact5.silverpop.com/XTMail'
7
+ end
8
+ end
9
+ end
@@ -1,27 +1,40 @@
1
1
  module PlanetExpress
2
2
  class Delivery
3
- # Everybody needs log in your life
4
- cattr_accessor :logger
5
- self.logger = Logger.new(STDOUT)
6
-
7
- def prepare campaign_id, recipient, personalizations={}
8
- # Is a better way to do this?
9
- @campaign_id = campaign_id
10
- @recipient = recipient
11
- @personalizations = personalizations
3
+ include Log4r
4
+
5
+ attr_accessor :configuration
6
+ attr_accessor :logger
7
+
8
+ def initialize *args
9
+ # Settings
10
+ self.configuration ||= PlanetExpress::Configuration.new
11
+
12
+ # By default try to use the same logger than Rails
13
+ begin
14
+ self.logger = Rails.logger
15
+ rescue
16
+ self.logger = Log4r::Logger.new('PlanetExpress')
17
+ self.logger.outputters << Log4r::Outputter.stdout
18
+ end
12
19
 
13
- logger.info "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
14
- logger.info "campaign_id => #{@campaign_id}"
15
- logger.info "recipient => #{@recipient}"
16
- logger.info "personalizations => #{@personalizations}"
17
- logger.info "personalizations total => #{@personalizations.count}"
20
+ logger.info "gateway_url => #{configuration.gateway_url}"
21
+ end
22
+
23
+ def configure
24
+ # Override Settings
25
+ yield(configuration)
26
+ end
18
27
 
28
+ def prepare campaign_id, recipient, personalizations={}
29
+ @campaign_id, @recipient, @personalizations = campaign_id, recipient, personalizations
19
30
  @personalizations.merge!({ :timestamp => Time.now, :email_template => @campaign_id })
31
+ raise PlanetExpress::ArgumentError if campaign_id.nil? or recipient.nil?
32
+
20
33
  build_request
21
34
  end
22
35
 
23
36
  def deliver!
24
- url = URI.parse 'https://transact5.silverpop.com/XTMail'
37
+ url = URI.parse configuration.gateway_url
25
38
  http, resp = Net::HTTP.new(url.host, url.port), ''
26
39
  http.use_ssl = true
27
40
 
@@ -40,40 +53,37 @@ module PlanetExpress
40
53
 
41
54
  @personalizations.each_pair do |name, value|
42
55
  fields_xml +=
43
- "<PERSONALIZATION>" +
44
- " <TAG_NAME>#{name}</TAG_NAME>" +
45
- " <VALUE><![CDATA[#{value}]]></VALUE>" +
46
- "</PERSONALIZATION>"
56
+ " <PERSONALIZATION>\n" +
57
+ " <TAG_NAME>#{name}</TAG_NAME>\n" +
58
+ " <VALUE><![CDATA[#{value}]]></VALUE>\n" +
59
+ " </PERSONALIZATION>\n"
47
60
  end
48
61
 
49
62
  recipient_xml =
50
- "<RECIPIENT>" +
51
- " <EMAIL>" + @recipient + "</EMAIL>" +
52
- " <BODY_TYPE>HTML</BODY_TYPE>" +
53
- " #{fields_xml}" +
54
- "</RECIPIENT>"
63
+ " <RECIPIENT>\n" +
64
+ " <EMAIL>" + @recipient + "</EMAIL>\n" +
65
+ " <BODY_TYPE>HTML</BODY_TYPE>\n" +
66
+ "#{fields_xml}" +
67
+ " </RECIPIENT>\n"
55
68
 
56
69
  @request =
57
- "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" +
58
- "<XTMAILING>" +
59
- " <CAMPAIGN_ID>#{@campaign_id}</CAMPAIGN_ID>" +
60
- " <SHOW_ALL_SEND_DETAIL>true</SHOW_ALL_SEND_DETAIL>" +
61
- " <SEND_AS_BATCH>false</SEND_AS_BATCH>" +
62
- " <NO_RETRY_ON_FAILURE>false</NO_RETRY_ON_FAILURE>" +
63
- # " <TRANSACTION_ID>" + @transaction_id + "</TRANSACTION_ID>" +
64
- " #{recipient_xml}" +
65
- "</XTMAILING>"
66
-
67
- logger.info "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
68
- logger.info "request => #{@request}"
70
+ "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>\n" +
71
+ "<XTMAILING>\n" +
72
+ " <CAMPAIGN_ID>#{@campaign_id}</CAMPAIGN_ID>\n" +
73
+ " <SHOW_ALL_SEND_DETAIL>true</SHOW_ALL_SEND_DETAIL>\n" +
74
+ " <SEND_AS_BATCH>false</SEND_AS_BATCH>\n" +
75
+ " <NO_RETRY_ON_FAILURE>false</NO_RETRY_ON_FAILURE>\n" +
76
+ # " <TRANSACTION_ID>" + @transaction_id + "</TRANSACTION_ID>\n" +
77
+ "#{recipient_xml}" +
78
+ "</XTMAILING>\n"
69
79
 
80
+ logger.info "original request => \n#{@request}"
70
81
  @request
71
82
  end
72
83
 
73
84
  def build_response response
85
+ logger.info "original response => \n#{response}"
74
86
  @response = Hpricot::XML(response)
75
- logger.info "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
76
- logger.info "response => #{response.inspect}"
77
87
 
78
88
  status = @response.at('STATUS').innerHTML.to_i
79
89
  error_string = @response.at('ERROR_STRING').innerHTML
@@ -0,0 +1,8 @@
1
+ module PlanetExpress
2
+ class Error < StandardError; end
3
+ class ArgumentError < ArgumentError;
4
+ def message
5
+ "Missing data. Please provide the campaign_id, recipient email and the personalizations hash."
6
+ end
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module PlanetExpress
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.7"
3
3
  end
@@ -1,9 +1,12 @@
1
+ require 'hpricot'
2
+ require 'log4r'
1
3
  require 'net/http'
2
4
  require 'uri'
3
- require 'hpricot'
4
5
 
5
- require "planet_express/version"
6
+ require "planet_express/configuration"
6
7
  require "planet_express/delivery"
8
+ require "planet_express/exceptions"
9
+ require "planet_express/version"
7
10
 
8
11
  module PlanetExpress
9
12
  end
@@ -19,9 +19,12 @@ Gem::Specification.new do |gem|
19
19
 
20
20
  gem.add_dependency 'activesupport'
21
21
  gem.add_dependency 'hpricot'
22
+ gem.add_dependency 'log4r'
22
23
 
24
+ gem.add_development_dependency 'awesome_print'
23
25
  gem.add_development_dependency 'guard'
24
26
  gem.add_development_dependency 'guard-bundler'
25
27
  gem.add_development_dependency 'guard-rspec'
28
+ gem.add_development_dependency 'pry'
26
29
  gem.add_development_dependency 'rspec'
27
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: planet_express
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-25 00:00:00.000000000 Z
12
+ date: 2012-12-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: log4r
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: awesome_print
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  - !ruby/object:Gem::Dependency
47
79
  name: guard
48
80
  requirement: !ruby/object:Gem::Requirement
@@ -91,6 +123,22 @@ dependencies:
91
123
  - - ! '>='
92
124
  - !ruby/object:Gem::Version
93
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: pry
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
94
142
  - !ruby/object:Gem::Dependency
95
143
  name: rspec
96
144
  requirement: !ruby/object:Gem::Requirement
@@ -119,15 +167,19 @@ files:
119
167
  - .gitignore
120
168
  - .rbenv-version
121
169
  - .rvmrc
122
- - DEVELOP.md
170
+ - CHANGELOG.md
123
171
  - Gemfile
124
172
  - Gemfile.lock
125
173
  - Guardfile
126
174
  - LICENSE.txt
127
175
  - README.md
128
176
  - Rakefile
177
+ - doc/contribute.md
178
+ - doc/silverpop_api.md
129
179
  - lib/planet_express.rb
180
+ - lib/planet_express/configuration.rb
130
181
  - lib/planet_express/delivery.rb
182
+ - lib/planet_express/exceptions.rb
131
183
  - lib/planet_express/version.rb
132
184
  - planet_express.gemspec
133
185
  - spec/planet_express_spec.rb
@@ -144,18 +196,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
144
196
  - - ! '>='
145
197
  - !ruby/object:Gem::Version
146
198
  version: '0'
147
- segments:
148
- - 0
149
- hash: 4224548502706184700
150
199
  required_rubygems_version: !ruby/object:Gem::Requirement
151
200
  none: false
152
201
  requirements:
153
202
  - - ! '>='
154
203
  - !ruby/object:Gem::Version
155
204
  version: '0'
156
- segments:
157
- - 0
158
- hash: 4224548502706184700
159
205
  requirements: []
160
206
  rubyforge_project:
161
207
  rubygems_version: 1.8.23