cantango-config 0.1.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.
Files changed (83) hide show
  1. data/.document +5 -0
  2. data/.rspec +1 -0
  3. data/Gemfile +40 -0
  4. data/Gemfile.lock +163 -0
  5. data/LICENSE.txt +20 -0
  6. data/README.mdown +21 -0
  7. data/Rakefile +49 -0
  8. data/VERSION +1 -0
  9. data/cantango-config.gemspec +145 -0
  10. data/lib/cantango/adapter/compiler.rb +9 -0
  11. data/lib/cantango/adapter/moneta.rb +23 -0
  12. data/lib/cantango/config.rb +12 -0
  13. data/lib/cantango/configuration/ability.rb +14 -0
  14. data/lib/cantango/configuration/account.rb +23 -0
  15. data/lib/cantango/configuration/accounts.rb +8 -0
  16. data/lib/cantango/configuration/adapters.rb +24 -0
  17. data/lib/cantango/configuration/autoload.rb +38 -0
  18. data/lib/cantango/configuration/candidate_registry.rb +94 -0
  19. data/lib/cantango/configuration/categories.rb +57 -0
  20. data/lib/cantango/configuration/debug.rb +41 -0
  21. data/lib/cantango/configuration/engine.rb +33 -0
  22. data/lib/cantango/configuration/engines.rb +97 -0
  23. data/lib/cantango/configuration/factory.rb +59 -0
  24. data/lib/cantango/configuration/guest.rb +57 -0
  25. data/lib/cantango/configuration/hash_registry.rb +91 -0
  26. data/lib/cantango/configuration/hooks.rb +12 -0
  27. data/lib/cantango/configuration/localhosts.rb +12 -0
  28. data/lib/cantango/configuration/models/actions.rb +26 -0
  29. data/lib/cantango/configuration/models/active_record.rb +22 -0
  30. data/lib/cantango/configuration/models/data_mapper.rb +12 -0
  31. data/lib/cantango/configuration/models/generic.rb +12 -0
  32. data/lib/cantango/configuration/models/mongo.rb +12 -0
  33. data/lib/cantango/configuration/models/mongo_mapper.rb +11 -0
  34. data/lib/cantango/configuration/models/mongoid.rb +13 -0
  35. data/lib/cantango/configuration/models.rb +77 -0
  36. data/lib/cantango/configuration/modes.rb +21 -0
  37. data/lib/cantango/configuration/orms.rb +8 -0
  38. data/lib/cantango/configuration/registry.rb +56 -0
  39. data/lib/cantango/configuration/user.rb +47 -0
  40. data/lib/cantango/configuration/users.rb +8 -0
  41. data/lib/cantango/configuration.rb +99 -0
  42. data/spec/cantango/config_spec.rb +8 -0
  43. data/spec/cantango/configuration/ability_spec.rb +13 -0
  44. data/spec/cantango/configuration/account_spec.rb +21 -0
  45. data/spec/cantango/configuration/accounts_spec.rb +18 -0
  46. data/spec/cantango/configuration/adapters_spec.rb +30 -0
  47. data/spec/cantango/configuration/autoload_spec.rb +52 -0
  48. data/spec/cantango/configuration/candidate_registry_spec.rb +12 -0
  49. data/spec/cantango/configuration/categories_spec.rb +58 -0
  50. data/spec/cantango/configuration/debug_spec.rb +39 -0
  51. data/spec/cantango/configuration/engines/engine_shared.rb +22 -0
  52. data/spec/cantango/configuration/engines_spec.rb +102 -0
  53. data/spec/cantango/configuration/factory_spec.rb +18 -0
  54. data/spec/cantango/configuration/guest/find_guest_default_way_spec.rb +32 -0
  55. data/spec/cantango/configuration/guest_spec.rb +61 -0
  56. data/spec/cantango/configuration/hash_registry_spec.rb +22 -0
  57. data/spec/cantango/configuration/localhosts_spec.rb +9 -0
  58. data/spec/cantango/configuration/models_spec.rb +47 -0
  59. data/spec/cantango/configuration/orms_spec.rb +9 -0
  60. data/spec/cantango/configuration/registry_spec.rb +15 -0
  61. data/spec/cantango/configuration/shared/candidate_registry_ex.rb +47 -0
  62. data/spec/cantango/configuration/shared/factory_ex.rb +40 -0
  63. data/spec/cantango/configuration/shared/hash_registry_ex.rb +55 -0
  64. data/spec/cantango/configuration/shared/modes_ex.rb +14 -0
  65. data/spec/cantango/configuration/shared/registry_ex.rb +40 -0
  66. data/spec/cantango/configuration/shared/role_registry_ex.rb +22 -0
  67. data/spec/cantango/configuration/user_spec.rb +45 -0
  68. data/spec/cantango/configuration/users_spec.rb +18 -0
  69. data/spec/cantango/configuration_spec.rb +112 -0
  70. data/spec/db/database.yml +4 -0
  71. data/spec/factories/project.rb +6 -0
  72. data/spec/fixtures/models/admin.rb +2 -0
  73. data/spec/fixtures/models/admin_account.rb +22 -0
  74. data/spec/fixtures/models/items.rb +8 -0
  75. data/spec/fixtures/models/permission.rb +12 -0
  76. data/spec/fixtures/models/project.rb +2 -0
  77. data/spec/fixtures/models/simple_roles.rb +49 -0
  78. data/spec/fixtures/models/user.rb +52 -0
  79. data/spec/fixtures/models/user_account.rb +21 -0
  80. data/spec/fixtures/models.rb +2 -0
  81. data/spec/migrations/001_create_projects.rb +12 -0
  82. data/spec/spec_helper.rb +35 -0
  83. metadata +231 -0
@@ -0,0 +1,112 @@
1
+ require 'spec_helper'
2
+ require 'fixtures/models'
3
+
4
+ @user = User.new('kris', 'kris@gmail.com')
5
+
6
+ class CanTango::CustomAbility < CanTango::Ability::Base
7
+ def initialize candidate, options = {}
8
+ 'custom'
9
+ end
10
+ end
11
+
12
+ class ApplicationController
13
+ end
14
+
15
+ describe CanTango::Configuration do
16
+ subject { CanTango.config }
17
+
18
+ describe 'ability' do
19
+ specify { subject.ability.should be_a CanTango::Configuration::Ability }
20
+ end
21
+
22
+ describe 'hooks' do
23
+ specify { subject.hooks.registered.should be_empty }
24
+
25
+ describe 'register hooks' do
26
+ before do
27
+ subject.hooks.register :nime => Proc.new { 2 }
28
+ end
29
+ specify { subject.hooks.registered.should_not be_empty }
30
+ specify { subject.hooks[:nime].should be_a Proc }
31
+ end
32
+ end
33
+
34
+ describe 'include_models :default_guest_user' do
35
+ before do
36
+ subject.include_models :default_guest_user
37
+ end
38
+ specify { defined?(::Guest).should be_true }
39
+ end
40
+
41
+ describe 'enable defaults' do
42
+ before do
43
+ subject.enable_defaults!
44
+ end
45
+ specify { subject.engine(:permit).should be_nil }
46
+ specify { subject.engine(:permission).should be_nil }
47
+ end
48
+
49
+ describe 'enable_helpers' do
50
+ before do
51
+ subject.enable_helpers :rest
52
+ end
53
+ specify { ::ApplicationController.instance_methods.should include(:link_to_new) }
54
+ end
55
+
56
+ describe 'localhosts' do
57
+ specify { subject.localhosts.registered.should include('localhost') }
58
+ end
59
+
60
+ describe 'orms' do
61
+ specify { subject.orms.registered.should be_empty }
62
+
63
+ describe 'register' do
64
+ before do
65
+ subject.orms.register :mongoid
66
+ end
67
+ specify { subject.orms.registered.should include(:mongoid) }
68
+ end
69
+
70
+ describe '<<' do
71
+ before do
72
+ subject.orms << :mongo_mapper
73
+ end
74
+ specify { subject.orms.registered.should include(:mongo_mapper) }
75
+ end
76
+ end
77
+
78
+ describe "engines DSL" do
79
+ before(:all) {
80
+ CanTango.configure do |config|
81
+ CanTango.config.engines.each do |engine|
82
+ engine.set :off
83
+ end
84
+ end
85
+ }
86
+
87
+ describe 'engine(name)' do
88
+ CanTango.config.engines.registered_names.each do |name|
89
+ specify { subject.engine(name).off?.should be_true}
90
+ end
91
+ end
92
+
93
+ describe 'each' do
94
+ CanTango.config.engines.each do |engine|
95
+ specify { engine.on?.should be_false}
96
+ specify { engine.off?.should be_true}
97
+ end
98
+ end
99
+ end
100
+
101
+ describe 'clear!' do
102
+ before do
103
+ subject.roles.exclude :user
104
+ subject.role_groups.exclude :admins
105
+
106
+ subject.clear!
107
+ end
108
+
109
+ specify { subject.roles.excluded.should be_empty }
110
+ specify { subject.role_groups.excluded.should be_empty }
111
+ end
112
+ end
@@ -0,0 +1,4 @@
1
+ adapter: sqlite3
2
+ database: development.sqlite3
3
+ pool: 5
4
+ timeout: 5000
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :project do
3
+ name { Forgery(:name).full_name }
4
+ end
5
+ end
6
+
@@ -0,0 +1,2 @@
1
+ class Admin < User
2
+ end
@@ -0,0 +1,22 @@
1
+ class AdminAccount
2
+ attr_accessor :user, :roles, :role_groups
3
+
4
+ def initialize user, options = {}
5
+ @user = user
6
+ @roles = options[:roles]
7
+ @role_groups = options[:role_groups]
8
+ end
9
+
10
+ def has_role? name
11
+ true
12
+ end
13
+
14
+ def roles_list
15
+ roles
16
+ end
17
+
18
+ def role_groups_list
19
+ role_groups
20
+ end
21
+ end
22
+
@@ -0,0 +1,8 @@
1
+ class Post
2
+ end
3
+
4
+ class Article
5
+ end
6
+
7
+ class Comment
8
+ end
@@ -0,0 +1,12 @@
1
+ class Permission
2
+ attr_accessor :thing, :thing_type, :action, :user
3
+
4
+ def initialize user, action, thing
5
+ @user, @action, @thing = [user, action, thing]
6
+ @thing_type = @thing.class.to_s
7
+ end
8
+
9
+ def thing_id
10
+ thing.id
11
+ end
12
+ end
@@ -0,0 +1,2 @@
1
+ class Project < ActiveRecord::Base
2
+ end
@@ -0,0 +1,49 @@
1
+ module SimpleRoles
2
+ def self.included(base)
3
+ base.send :include, InstanceMethods
4
+ base.extend ClassMethods
5
+ end
6
+
7
+ module ClassMethods
8
+ def is_role_in_group?(role, group)
9
+ raise "No group #{group} defined in User model" if !role_groups.has_key?(group)
10
+ role_groups[group].include?(role)
11
+ end
12
+
13
+ def role_groups
14
+ {:bloggers => [:editor]}
15
+ end
16
+
17
+ def roles
18
+ [:guest, :user, :admin, :editor]
19
+ end
20
+ end
21
+
22
+ module InstanceMethods
23
+
24
+ attr_accessor :role_groups_list
25
+
26
+ def has_role? role
27
+ roles_list.include? role
28
+ end
29
+
30
+ def has_any_role? roles
31
+ roles.include?(role.to_sym)
32
+ end
33
+
34
+ def roles_list
35
+ role.to_s.scan(/\w+/).map{|r| r.to_sym}
36
+ end
37
+
38
+ def is_in_group? group
39
+ role_groups_list.include? group
40
+ end
41
+ alias_method :in_role_group?, :is_in_group?
42
+
43
+ def role_groups_list
44
+ return role_groups.scan(/\w+/).map(&:to_sym) if respond_to?(:role_groups) && !role_groups.nil?
45
+ @role_groups_list || [] #[:bloggers]
46
+ end
47
+ end
48
+ end
49
+
@@ -0,0 +1,52 @@
1
+ require 'fixtures/models/simple_roles'
2
+
3
+ class User
4
+ attr_accessor :name, :account, :email
5
+
6
+ # tango_user # see macros
7
+
8
+ include ::SimpleRoles
9
+
10
+ def initialize name, email = nil, options = {}
11
+ @name = name
12
+ @email = email
13
+ set_option_vars options
14
+ end
15
+
16
+ def set_option_vars options = {}
17
+ options.each_pair do |name, value|
18
+ var = :"@#{name}"
19
+ self.instance_variable_set(var, value)
20
+ end
21
+ end
22
+
23
+ def email
24
+ @email ||= 'default@gmail.com'
25
+ end
26
+
27
+ def role
28
+ @role || ''
29
+ end
30
+
31
+ # This hash should be recalculated anytime the permissions collection changes
32
+ #
33
+
34
+ # after_update :recalculate_permissions_hash
35
+
36
+ def permissions_hash
37
+ @permissions_hash = permissions.hash
38
+ end
39
+
40
+ def permissions
41
+ @permissions ||= []
42
+ end
43
+
44
+ # allows implementation specific to ORM, fx using #all on some datastores such as Mongoid etc.
45
+ alias_method :all_permissions, :permissions
46
+
47
+ protected
48
+
49
+ def recalculate_permissions_hash
50
+ @permissions_hash = nil if self.permissions_changed?
51
+ end
52
+ end
@@ -0,0 +1,21 @@
1
+ class UserAccount
2
+ attr_accessor :user, :roles, :role_groups
3
+
4
+ def initialize user, options = {}
5
+ @user = user
6
+ @roles = options[:roles]
7
+ @role_groups = options[:role_groups]
8
+ end
9
+
10
+ def has_role? name
11
+ true
12
+ end
13
+
14
+ def roles_list
15
+ roles
16
+ end
17
+
18
+ def role_groups_list
19
+ role_groups
20
+ end
21
+ end
@@ -0,0 +1,2 @@
1
+ require 'require_all'
2
+ require_all File.dirname(__FILE__) + '/models'
@@ -0,0 +1,12 @@
1
+ class CreateProjects < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :projects do |t|
4
+ t.string :name
5
+ t.timestamps
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :projects
11
+ end
12
+ end
@@ -0,0 +1,35 @@
1
+ require 'rspec'
2
+ require 'cantango/config'
3
+ require 'active_record'
4
+
5
+ require 'cutter'
6
+ require 'yaml'
7
+ require 'logger'
8
+ require 'database_cleaner'
9
+
10
+ require 'factory_girl'
11
+ FactoryGirl.find_definitions
12
+
13
+ # Requires supporting files with custom matchers and macros, etc,
14
+ # in ./support/ and its subdirectories.
15
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
16
+
17
+ DatabaseCleaner.strategy = :truncation
18
+
19
+ RSpec.configure do |config|
20
+ end
21
+
22
+ def connect_db
23
+ path = File.dirname(__FILE__) + '/db/database.yml'
24
+ dbfile = File.open(path)
25
+ dbconfig = YAML::load(dbfile)
26
+ ActiveRecord::Base.establish_connection(dbconfig)
27
+ ActiveRecord::Base.logger = Logger.new(STDERR)
28
+ DatabaseCleaner.clean
29
+ end
30
+
31
+ def migrate
32
+ folder = File.join(File.dirname(__FILE__), 'migrations')
33
+ puts "Migrate: #{folder}"
34
+ ActiveRecord::Migrator.migrate folder
35
+ end
metadata ADDED
@@ -0,0 +1,231 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cantango-config
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Kristian Mandrup
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-11-25 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &899147350 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *899147350
25
+ - !ruby/object:Gem::Dependency
26
+ name: sugar-high
27
+ requirement: &899146740 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.6.0
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *899146740
36
+ - !ruby/object:Gem::Dependency
37
+ name: sweetloader
38
+ requirement: &899146220 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 0.1.0
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *899146220
47
+ - !ruby/object:Gem::Dependency
48
+ name: hashie
49
+ requirement: &899145010 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *899145010
58
+ - !ruby/object:Gem::Dependency
59
+ name: cantango-core
60
+ requirement: &899107470 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *899107470
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler
71
+ requirement: &899106680 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 1.1.rc
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *899106680
80
+ - !ruby/object:Gem::Dependency
81
+ name: jeweler
82
+ requirement: &899105910 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 1.6.4
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *899105910
91
+ - !ruby/object:Gem::Dependency
92
+ name: rcov
93
+ requirement: &899105410 !ruby/object:Gem::Requirement
94
+ none: false
95
+ requirements:
96
+ - - ! '>='
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ type: :development
100
+ prerelease: false
101
+ version_requirements: *899105410
102
+ - !ruby/object:Gem::Dependency
103
+ name: rspec
104
+ requirement: &899104870 !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 2.6.0
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: *899104870
113
+ description: Configuration DSL for configuring CanTango
114
+ email: kmandrup@gmail.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files:
118
+ - LICENSE.txt
119
+ - README.mdown
120
+ files:
121
+ - .document
122
+ - .rspec
123
+ - Gemfile
124
+ - Gemfile.lock
125
+ - LICENSE.txt
126
+ - README.mdown
127
+ - Rakefile
128
+ - VERSION
129
+ - cantango-config.gemspec
130
+ - lib/cantango/adapter/compiler.rb
131
+ - lib/cantango/adapter/moneta.rb
132
+ - lib/cantango/config.rb
133
+ - lib/cantango/configuration.rb
134
+ - lib/cantango/configuration/ability.rb
135
+ - lib/cantango/configuration/account.rb
136
+ - lib/cantango/configuration/accounts.rb
137
+ - lib/cantango/configuration/adapters.rb
138
+ - lib/cantango/configuration/autoload.rb
139
+ - lib/cantango/configuration/candidate_registry.rb
140
+ - lib/cantango/configuration/categories.rb
141
+ - lib/cantango/configuration/debug.rb
142
+ - lib/cantango/configuration/engine.rb
143
+ - lib/cantango/configuration/engines.rb
144
+ - lib/cantango/configuration/factory.rb
145
+ - lib/cantango/configuration/guest.rb
146
+ - lib/cantango/configuration/hash_registry.rb
147
+ - lib/cantango/configuration/hooks.rb
148
+ - lib/cantango/configuration/localhosts.rb
149
+ - lib/cantango/configuration/models.rb
150
+ - lib/cantango/configuration/models/actions.rb
151
+ - lib/cantango/configuration/models/active_record.rb
152
+ - lib/cantango/configuration/models/data_mapper.rb
153
+ - lib/cantango/configuration/models/generic.rb
154
+ - lib/cantango/configuration/models/mongo.rb
155
+ - lib/cantango/configuration/models/mongo_mapper.rb
156
+ - lib/cantango/configuration/models/mongoid.rb
157
+ - lib/cantango/configuration/modes.rb
158
+ - lib/cantango/configuration/orms.rb
159
+ - lib/cantango/configuration/registry.rb
160
+ - lib/cantango/configuration/user.rb
161
+ - lib/cantango/configuration/users.rb
162
+ - spec/cantango/config_spec.rb
163
+ - spec/cantango/configuration/ability_spec.rb
164
+ - spec/cantango/configuration/account_spec.rb
165
+ - spec/cantango/configuration/accounts_spec.rb
166
+ - spec/cantango/configuration/adapters_spec.rb
167
+ - spec/cantango/configuration/autoload_spec.rb
168
+ - spec/cantango/configuration/candidate_registry_spec.rb
169
+ - spec/cantango/configuration/categories_spec.rb
170
+ - spec/cantango/configuration/debug_spec.rb
171
+ - spec/cantango/configuration/engines/engine_shared.rb
172
+ - spec/cantango/configuration/engines_spec.rb
173
+ - spec/cantango/configuration/factory_spec.rb
174
+ - spec/cantango/configuration/guest/find_guest_default_way_spec.rb
175
+ - spec/cantango/configuration/guest_spec.rb
176
+ - spec/cantango/configuration/hash_registry_spec.rb
177
+ - spec/cantango/configuration/localhosts_spec.rb
178
+ - spec/cantango/configuration/models_spec.rb
179
+ - spec/cantango/configuration/orms_spec.rb
180
+ - spec/cantango/configuration/registry_spec.rb
181
+ - spec/cantango/configuration/shared/candidate_registry_ex.rb
182
+ - spec/cantango/configuration/shared/factory_ex.rb
183
+ - spec/cantango/configuration/shared/hash_registry_ex.rb
184
+ - spec/cantango/configuration/shared/modes_ex.rb
185
+ - spec/cantango/configuration/shared/registry_ex.rb
186
+ - spec/cantango/configuration/shared/role_registry_ex.rb
187
+ - spec/cantango/configuration/user_spec.rb
188
+ - spec/cantango/configuration/users_spec.rb
189
+ - spec/cantango/configuration_spec.rb
190
+ - spec/db/database.yml
191
+ - spec/factories/project.rb
192
+ - spec/fixtures/models.rb
193
+ - spec/fixtures/models/admin.rb
194
+ - spec/fixtures/models/admin_account.rb
195
+ - spec/fixtures/models/items.rb
196
+ - spec/fixtures/models/permission.rb
197
+ - spec/fixtures/models/project.rb
198
+ - spec/fixtures/models/simple_roles.rb
199
+ - spec/fixtures/models/user.rb
200
+ - spec/fixtures/models/user_account.rb
201
+ - spec/migrations/001_create_projects.rb
202
+ - spec/spec_helper.rb
203
+ homepage: http://github.com/kristianmandrup/cantango-config
204
+ licenses:
205
+ - MIT
206
+ post_install_message:
207
+ rdoc_options: []
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ! '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ segments:
217
+ - 0
218
+ hash: -153658417
219
+ required_rubygems_version: !ruby/object:Gem::Requirement
220
+ none: false
221
+ requirements:
222
+ - - ! '>='
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ requirements: []
226
+ rubyforge_project:
227
+ rubygems_version: 1.8.10
228
+ signing_key:
229
+ specification_version: 3
230
+ summary: Configuration for Cantango
231
+ test_files: []