fedux_org-stdlib 0.0.2 → 0.0.3

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/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --format Fuubar
2
+ --order rand
data/.simplecov ADDED
@@ -0,0 +1,8 @@
1
+ SimpleCov.start do
2
+ add_filter "/features/"
3
+ add_filter "/spec/"
4
+ add_group "actions", "lib/puppet_generator/actions/"
5
+ add_group "actions", "lib/puppet_generator/filter/"
6
+ add_group "actions", "lib/puppet_generator/templates/"
7
+ add_group "lib", "lib/"
8
+ end
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ gemfile: gemfiles/Gemfile.travis
3
+ rvm:
4
+ - 1.9.3
5
+ - 2.0.0
6
+ script: bundle exec rake test:travis_specs
data/.yardopts ADDED
@@ -0,0 +1,6 @@
1
+ --verbose
2
+ -
3
+ API-GUIDE.md
4
+ CONTRIBUTIONS.md
5
+ LICENSE.md
6
+ RELEASE_NOTES.md
data/Gemfile CHANGED
@@ -19,6 +19,7 @@ end
19
19
 
20
20
  group :development do
21
21
  gem 'tmrb'
22
+ gem 'erubis'
22
23
  gem 'debugger'
23
24
  gem 'pry'
24
25
  gem 'pry-doc'
data/Rakefile CHANGED
@@ -8,12 +8,14 @@ unless ENV['TRAVIS_CI'] == 'true'
8
8
  require 'yard'
9
9
  require 'rubygems/package_task'
10
10
  require 'active_support/core_ext/string/strip'
11
+ require 'erubis'
11
12
  end
12
13
 
13
14
  YARD::Rake::YardocTask.new() do |y|
14
15
  # y.options << '--verbose'
15
16
  end
16
17
 
18
+
17
19
  desc 'start tmux'
18
20
  task :terminal do
19
21
  sh "script/terminal"
@@ -30,13 +32,21 @@ namespace :version do
30
32
 
31
33
  new_version = ENV['VERSION'] || ENV['version']
32
34
 
33
- raw_module_name = File.open(version_file, "r").readlines.grep(/module/).first
34
- module_name = raw_module_name.chomp.match(/module\s+(\S+)/) {$1}
35
+ raw_module_names = File.open(version_file, "r").readlines.grep(/module/)
36
+ module_names = raw_module_names.collect { |n| n.chomp.match(/module\s+(\S+)/) {$1} }
37
+
38
+ template = <<-EOF
39
+ #main <%= @modules.first %>
40
+ <% @modules.each do |m| %>
41
+ module <%= m %>
42
+ <% end %>
43
+ VERSION = '<%= @version %>'
44
+ <% @modules.size.times do |m| %>
45
+ end
46
+ <% end %>
47
+ EOF
35
48
 
36
- version_string = %Q{#main #{module_name}
37
- module #{module_name}
38
- VERSION = '#{new_version}'
39
- end}
49
+ version_string = Erubis::Eruby.new(template).evaluate(modules: module_names, version: new_version)
40
50
 
41
51
  File.open(version_file, "w") do |f|
42
52
  f.write version_string.strip_heredoc
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_dependency "activesupport"
23
24
  end
@@ -1,3 +1,5 @@
1
+ require 'logger'
2
+
1
3
  module FeduxOrg
2
4
  module Stdlib
3
5
  module Logging
File without changes
@@ -1,3 +1,6 @@
1
+ require 'fedux_org/stdlib/logging'
2
+ require 'fedux_org/stdlib/models/exceptions'
3
+
1
4
  module FeduxOrg
2
5
  module Stdlib
3
6
  module Models
@@ -57,13 +60,9 @@ module FeduxOrg
57
60
  end
58
61
  end
59
62
 
60
- def find( val )
61
- @instances.find { |i| i.name == val.to_s.to_sym }
62
- end
63
-
64
63
  def delete( val )
65
- element = find( val.to_s.to_sym )
66
- raise Exceptions::InstanceNotFound unless element
64
+ element = self.find( val.to_s.to_sym )
65
+ raise FeduxOrg::Stdlib::Exceptions::InstanceNotFound unless element
67
66
  @instances.delete element
68
67
 
69
68
  element
@@ -1,3 +1,6 @@
1
+ require 'active_support/core_ext/string/inflections'
2
+ require 'fedux_org/stdlib/models/filesystem_based_model'
3
+
1
4
  module FeduxOrg
2
5
  module Stdlib
3
6
  module Models
@@ -15,7 +18,7 @@ module FeduxOrg
15
18
  end
16
19
 
17
20
  def exception_for_model
18
- "#{library_name}::Exceptions::Invalid#{model_name.singularize}".constantize
21
+ "#{library_name}::Exceptions::Invalid#{model_name}".constantize
19
22
  rescue
20
23
  raise FeduxOrg::Stdlib::Models::Exceptions::ExceptionNeedsToBeImplemented, "Exception \"#{library_name}::Exceptions::Invalid#{model_name}\" does not exist."
21
24
  end
@@ -1,32 +1,38 @@
1
- module PuppetGenerator
2
- module Exceptions
3
-
4
- #raised if one tries to delete an instance which
5
- #does not exist
6
- class InstanceNotFound < InternalError; end
7
-
8
- #raised if one tries to use a keyword whose use
9
- #is restricted
10
- class UnauthorizedUseOfKeyword < InternalError; end
11
-
12
- #raised if one uses invalid search criteria
13
- class InvalidSearchCriteria < InternalError; end
14
-
15
- #raised if the code which defines an import filter
16
- #is malformed
17
- class MethodNeedsToBeImplemented < InternalError; end
18
-
19
- #raised if one tries to use an unimplemented exception
20
- class ExceptionNeedsToBeImplemented < InternalError; end
21
-
22
- #raised if an file system error occured
23
- class FilesystemError < Exception ; end
24
-
25
- #raise if a directory does not exist in filesystem
26
- class DirectoryDoesNotExist < FilesystemError; end
27
-
28
- #raise if a file does not exist in filesystem
29
- class FileDoesNotExist < FilesystemError; end
1
+ module FeduxOrg
2
+ module Stdlib
3
+ module Models
4
+ module Exceptions
5
+ #internal error
6
+ class InternalError < Exception; end
30
7
 
8
+ #raised if one tries to delete an instance which
9
+ #does not exist
10
+ class InstanceNotFound < InternalError; end
11
+
12
+ #raised if one tries to use a keyword whose use
13
+ #is restricted
14
+ class UnauthorizedUseOfKeyword < InternalError; end
15
+
16
+ #raised if one uses invalid search criteria
17
+ class InvalidSearchCriteria < InternalError; end
18
+
19
+ #raised if the code which defines an import filter
20
+ #is malformed
21
+ class MethodNeedsToBeImplemented < InternalError; end
22
+
23
+ #raised if one tries to use an unimplemented exception
24
+ class ExceptionNeedsToBeImplemented < InternalError; end
25
+
26
+ #raised if an file system error occured
27
+ class FilesystemError < Exception ; end
28
+
29
+ #raise if a directory does not exist in filesystem
30
+ class DirectoryDoesNotExist < FilesystemError; end
31
+
32
+ #raise if a file does not exist in filesystem
33
+ class FileDoesNotExist < FilesystemError; end
34
+
35
+ end
36
+ end
31
37
  end
32
38
  end
@@ -1,3 +1,5 @@
1
+ require 'fedux_org/stdlib/models/base_model'
2
+
1
3
  module FeduxOrg
2
4
  module Stdlib
3
5
  module Models
@@ -2,4 +2,3 @@ require 'fedux_org/stdlib/models/exceptions'
2
2
  require 'fedux_org/stdlib/models/base_model'
3
3
  require 'fedux_org/stdlib/models/class_based_model'
4
4
  require 'fedux_org/stdlib/models/filesystem_based_model'
5
- require 'fedux_org/stdlib/logger'
@@ -1,6 +1,6 @@
1
1
  #main FeduxOrg
2
2
  module FeduxOrg
3
- module Stdlib
4
- VERSION = '0.0.2'
5
- end
3
+ module Stdlib
4
+ VERSION = '0.0.3'
5
+ end
6
6
  end
data/script/console ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $LOAD_PATH << File.expand_path('../lib', File.dirname(__FILE__))
4
+
5
+ require 'fedux_org/stdlib'
6
+ require 'pry'
7
+
8
+ Pry.start
data/script/terminal ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'tmrb'
4
+
5
+ tmux = TmRb::Multiplexer.new
6
+ #creates an empty window
7
+ tmux.new_session(:session_name => "fedux_org-stdlib")
8
+
9
+ tmux.new_window(:name => 'models', :command => 'vim -c \"NERDTree lib/fedux_org/stdlib/models\"')
10
+ tmux.new_window(:name => 'logging', :command => 'vim -c \"NERDTree lib/fedux_org/stdlib/logging\"')
11
+ tmux.new_window(:name => 'spec', :command => 'vim -c \"NERDTree spec\"')
12
+ tmux.start
@@ -0,0 +1,8 @@
1
+ module TestIt
2
+ module TestClasses
3
+ class ForbiddenKeyword
4
+ def req_method
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,6 @@
1
+ module TestIt
2
+ module TestClasses
3
+ class Invalid_1
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ module TestIt
2
+ module TestClasses
3
+ class Invalid2
4
+ #missing method
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module TestIt
2
+ module TestClasses
3
+ class Valid1
4
+ def req_method
5
+ end
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ require 'fedux_org/stdlib/models'
4
+
5
+ describe Models::BaseModel do
6
+
7
+ before(:each) {
8
+ Models::BaseModel.clear
9
+ }
10
+
11
+ it "is possible to register a message" do
12
+ m1 = Models::BaseModel.new('name')
13
+ Models::BaseModel.register m1
14
+ end
15
+
16
+ it "is possible to find an object" do
17
+ m1 = Models::BaseModel.new('name')
18
+ Models::BaseModel.register m1
19
+
20
+ m_found = Models::BaseModel.find('name')
21
+
22
+ expect(m1).to eq(m_found)
23
+ end
24
+
25
+ it "is possible to create and register in one step" do
26
+ m1 = Models::BaseModel.create('name')
27
+ m_found = Models::BaseModel.find('name')
28
+
29
+ expect(m1).to eq(m_found)
30
+ end
31
+
32
+ it "is possible to delete an object" do
33
+ m1 = Models::BaseModel.create('name')
34
+ m2 = Models::BaseModel.delete('name')
35
+
36
+ expect(m1).to eq(m2)
37
+ end
38
+
39
+ it "is possible to delete all objects" do
40
+ Models::BaseModel.create('name1')
41
+ Models::BaseModel.create('name2')
42
+ Models::BaseModel.create('name3')
43
+
44
+ Models::BaseModel.clear
45
+ expect(Models::BaseModel.all).to eq( [] )
46
+ end
47
+
48
+ end
@@ -0,0 +1,185 @@
1
+ require 'spec_helper'
2
+
3
+ require 'fedux_org/stdlib/models/class_based_model'
4
+
5
+ describe Models::ClassBasedModel do
6
+
7
+ before(:each) do
8
+
9
+ module TestIt
10
+ module Exceptions
11
+ class InvalidTestClass < Exception; end
12
+ end
13
+ end
14
+
15
+ end
16
+
17
+ it "loads all available instances from the file system and make the classes available." do
18
+ # all loaded instances need be defined like that
19
+ #
20
+ # model:
21
+ # ------
22
+ # class Testmodel
23
+ # end
24
+ #
25
+ # Class to be loaded for instance of model (second level is plural of model name)
26
+ # Furthermore you need to define a method which is used as a check for a valid
27
+ # class. That class must not take an argument in #new! All arguments need to be
28
+ # taken by the '#method'.
29
+ # --------------------------------------------------------------------------------
30
+ # module Bla
31
+ # module Testmodels
32
+ # class XY
33
+ # def method
34
+ # end
35
+ # end
36
+ # end
37
+ # end
38
+ test_class = Class.new(Models::BaseModel) do
39
+ include Models::FilesystemBasedModel
40
+ include Models::ClassBasedModel
41
+
42
+ def initialize(name, klass)
43
+ super(name)
44
+
45
+ @klass = klass
46
+ end
47
+
48
+ def self.model_name
49
+ 'TestClass'
50
+ end
51
+
52
+ def self.library_name
53
+ 'TestIt'
54
+ end
55
+
56
+ def self.check_method
57
+ :req_method
58
+ end
59
+
60
+ def self.path_to_instances
61
+ File.join( examples_dir, 'models', 'class_based', 'valid_1.rb' )
62
+ end
63
+
64
+ def self.require_path(name)
65
+ File.join( examples_dir, 'models', 'class_based', 'valid_1' )
66
+ end
67
+ end
68
+
69
+ test_class.init
70
+ expect(test_class.all.first.name).to eq(:valid_1)
71
+ end
72
+
73
+
74
+ it "raises an error if an instance is invalid: name error" do
75
+ test_class = Class.new(Models::BaseModel) do
76
+ include Models::FilesystemBasedModel
77
+ include Models::ClassBasedModel
78
+
79
+ def initialize(name, klass)
80
+ super(name)
81
+
82
+ @klass = klass
83
+ end
84
+
85
+ def self.model_name
86
+ "TestClass"
87
+ end
88
+
89
+ def self.library_name
90
+ 'TestIt'
91
+ end
92
+
93
+ def self.check_method
94
+ :req_method
95
+ end
96
+
97
+ def self.path_to_instances
98
+ File.join( examples_dir, 'models', 'class_based', 'invalid_1.rb' )
99
+ end
100
+
101
+ def self.require_path(name)
102
+ File.join( examples_dir, 'models', 'class_based', 'invalid_1' )
103
+ end
104
+ end
105
+
106
+ expect {
107
+ test_class.init
108
+ }.to raise_error
109
+ end
110
+
111
+ it "an import filter uses a forbidden keywords as name" do
112
+ test_class = Class.new(Models::BaseModel) do
113
+ include Models::FilesystemBasedModel
114
+ include Models::ClassBasedModel
115
+
116
+ def initialize(name, klass)
117
+ super(name)
118
+
119
+ @klass = klass
120
+ end
121
+
122
+ def self.model_name
123
+ "TestClass"
124
+ end
125
+
126
+ def self.library_name
127
+ 'TestIt'
128
+ end
129
+
130
+ def self.path_to_instances
131
+ File.join( examples_dir, 'models', 'class_based', 'forbidden_keyword.rb' )
132
+ end
133
+
134
+ def self.require_path(name)
135
+ File.join( examples_dir, 'models', 'class_based', 'forbidden_keyword' )
136
+ end
137
+
138
+ def self.forbidden_keywords
139
+ [ :forbidden_keyword ]
140
+ end
141
+ end
142
+
143
+ expect {
144
+ test_class.init
145
+ }.to raise_error FeduxOrg::Stdlib::Models::Exceptions::UnauthorizedUseOfKeyword
146
+ end
147
+
148
+ it "raises an error if an import filter is invalid: missing method" do
149
+ test_class = Class.new(Models::BaseModel) do
150
+ include Models::FilesystemBasedModel
151
+ include Models::ClassBasedModel
152
+
153
+ def initialize(name, klass)
154
+ super(name)
155
+
156
+ @klass = klass
157
+ end
158
+
159
+ def self.model_name
160
+ "TestClass"
161
+ end
162
+
163
+ def self.library_name
164
+ 'TestIt'
165
+ end
166
+
167
+ def self.path_to_instances
168
+ File.join( examples_dir, 'models', 'class_based', 'invalid_2.rb' )
169
+ end
170
+
171
+ def self.require_path(name)
172
+ File.join( examples_dir, 'models', 'class_based', 'invalid_2' )
173
+ end
174
+
175
+ def self.check_method
176
+ :req_method
177
+ end
178
+ end
179
+
180
+ expect {
181
+ test_class.init
182
+ }.to raise_error TestIt::Exceptions::InvalidTestClass
183
+ end
184
+
185
+ end
@@ -0,0 +1,105 @@
1
+ require 'spec_helper'
2
+
3
+ require 'fedux_org/stdlib/models/filesystem_based_model'
4
+
5
+ describe Models::FilesystemBasedModel do
6
+ before(:each) do
7
+ @model = Class.new(Models::BaseModel) do
8
+ include Models::FilesystemBasedModel
9
+
10
+ def self.load_from_filesystem
11
+ [ :hello, :world ].each { |s| create( s ) }
12
+ end
13
+ end
14
+
15
+ @model.clear
16
+
17
+ module Test123
18
+ module Models
19
+ class TestClassForFilesystem < FeduxOrg::Stdlib::Models::BaseModel
20
+ include FeduxOrg::Stdlib::Models::FilesystemBasedModel
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ it "returns a string of all active filters" do
27
+ @model.create(:name1)
28
+ @model.create(:name2)
29
+ @model.enable :name1
30
+ @model.enable :name2
31
+
32
+ result = @model.all_names_as_string(", ")
33
+ expect(result).to eq("name1, name2")
34
+
35
+ result = @model.all_names_as_string
36
+ expect(result).to eq("name1, name2")
37
+ end
38
+
39
+ it "finds all available filter" do
40
+ @model.init
41
+ filter = @model.find(:hello)
42
+ expect(filter.name).to eq(:hello)
43
+ end
44
+
45
+ it "is default that all found filters are disabled" do
46
+ @model.init
47
+ all_filter = @model.all
48
+ all_not_enabled_filter = @model.find_all(enabled: false)
49
+ expect(all_filter.size).to eq(all_not_enabled_filter.size)
50
+ end
51
+
52
+ it "enables a filter by request" do
53
+ @model.init
54
+ @model.enable(:hello)
55
+ all_enabled_filter = @model.find_all( enabled: true )
56
+ filter = @model.find( :hello )
57
+
58
+ expect( all_enabled_filter ).to eq( [ filter ] )
59
+ end
60
+
61
+ it "s find method supports a hash based syntax" do
62
+ @model.init
63
+ @model.enable(:hello)
64
+
65
+ enabled_filter = @model.find(name: :hello, enabled: true)
66
+ expect(enabled_filter.name).to eq(:hello)
67
+ end
68
+
69
+ it "s find method supports a symbol based syntax as well. The search string is compared against the name method." do
70
+ @model.init
71
+ enabled_filter = @model.find(:hello)
72
+ expect(enabled_filter.name).to eq(:hello)
73
+
74
+ enabled_filter = @model.find_all(:hello)
75
+ expect(enabled_filter.first.name).to eq(:hello)
76
+ end
77
+
78
+ it "s find method supports a string based syntax as well. The search string is compared against the name method." do
79
+ @model.init
80
+ enabled_filter = @model.find('hello')
81
+ expect(enabled_filter.name).to eq(:hello)
82
+
83
+ enabled_filter = @model.find_all('hello')
84
+ expect(enabled_filter.first.name).to eq(:hello)
85
+ end
86
+
87
+ it "raises an error if an unknown search criteria is used" do
88
+ @model.init
89
+ expect {
90
+ enabled_filter = @model.find(unknown: 'hello')
91
+ }.to raise_error FeduxOrg::Stdlib::Models::Exceptions::InvalidSearchCriteria
92
+ end
93
+
94
+ it "returns the module name" do
95
+ expect( Test123::Models::TestClassForFilesystem.send(:module_name) ).to eq('Test123::Models')
96
+ end
97
+
98
+ it "returns the model name" do
99
+ expect( Test123::Models::TestClassForFilesystem.send(:model_name) ).to eq('TestClassForFilesystem')
100
+ end
101
+
102
+ it "returns the library name" do
103
+ expect( Test123::Models::TestClassForFilesystem.send(:library_name) ).to eq('Test123')
104
+ end
105
+ end
data/spec/spec_helper.rb CHANGED
@@ -14,8 +14,8 @@ unless ENV['TRAVIS_CI'] == 'true'
14
14
  SimpleCov.command_name 'rspec'
15
15
  end
16
16
 
17
- require 'puppet_generator'
18
- include PuppetGenerator
17
+ require 'fedux_org/stdlib'
18
+ include FeduxOrg::Stdlib
19
19
 
20
20
  RSpec.configure do |c|
21
21
  c.treat_symbols_as_metadata_keys_with_true_values = true
@@ -26,3 +26,4 @@ end
26
26
  def examples_dir
27
27
  File.expand_path( '../examples', __FILE__ )
28
28
  end
29
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fedux_org-stdlib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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: 2013-06-05 00:00:00.000000000 Z
12
+ date: 2013-06-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: activesupport
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'
46
62
  description: collection of use full libraries
47
63
  email:
48
64
  - dev@fedux.org
@@ -51,6 +67,10 @@ extensions: []
51
67
  extra_rdoc_files: []
52
68
  files:
53
69
  - .gitignore
70
+ - .rspec
71
+ - .simplecov
72
+ - .travis.yml
73
+ - .yardopts
54
74
  - Gemfile
55
75
  - LICENSE.md
56
76
  - README.md
@@ -62,7 +82,7 @@ files:
62
82
  - lib/fedux_org/stdlib/environment.rb
63
83
  - lib/fedux_org/stdlib/filesystem.rb
64
84
  - lib/fedux_org/stdlib/filesystem/exceptions.rb
65
- - lib/fedux_org/stdlib/logger.rb
85
+ - lib/fedux_org/stdlib/logging.rb
66
86
  - lib/fedux_org/stdlib/logging/logger.rb
67
87
  - lib/fedux_org/stdlib/models.rb
68
88
  - lib/fedux_org/stdlib/models/base_model.rb
@@ -70,6 +90,15 @@ files:
70
90
  - lib/fedux_org/stdlib/models/exceptions.rb
71
91
  - lib/fedux_org/stdlib/models/filesystem_based_model.rb
72
92
  - lib/fedux_org/stdlib/version.rb
93
+ - script/console
94
+ - script/terminal
95
+ - spec/examples/models/class_based/forbidden_keyword.rb
96
+ - spec/examples/models/class_based/invalid_1.rb
97
+ - spec/examples/models/class_based/invalid_2.rb
98
+ - spec/examples/models/class_based/valid_1.rb
99
+ - spec/models/base_model_spec.rb
100
+ - spec/models/class_based_model_spec.rb
101
+ - spec/models/filesystem_based_model_spec.rb
73
102
  - spec/spec_helper.rb
74
103
  homepage: ''
75
104
  licenses:
@@ -97,5 +126,12 @@ signing_key:
97
126
  specification_version: 3
98
127
  summary: collection of use full libraries
99
128
  test_files:
129
+ - spec/examples/models/class_based/forbidden_keyword.rb
130
+ - spec/examples/models/class_based/invalid_1.rb
131
+ - spec/examples/models/class_based/invalid_2.rb
132
+ - spec/examples/models/class_based/valid_1.rb
133
+ - spec/models/base_model_spec.rb
134
+ - spec/models/class_based_model_spec.rb
135
+ - spec/models/filesystem_based_model_spec.rb
100
136
  - spec/spec_helper.rb
101
137
  has_rdoc: