sinatra_resource 0.4.21 → 0.4.22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. data/Gemfile +18 -0
  2. data/Gemfile.lock +51 -0
  3. data/README.mdown +1 -1
  4. data/VERSION +1 -1
  5. data/examples/datacatalog/.bundle/config +2 -0
  6. data/examples/datacatalog/Gemfile +14 -0
  7. data/examples/datacatalog/Gemfile.lock +33 -0
  8. data/examples/datacatalog/Rakefile +2 -2
  9. data/examples/datacatalog/app.rb +0 -2
  10. data/examples/datacatalog/config/config.rb +5 -7
  11. data/examples/datacatalog/lib/base.rb +2 -2
  12. data/examples/datacatalog/lib/resource.rb +5 -5
  13. data/examples/datacatalog/lib/roles.rb +2 -2
  14. data/examples/datacatalog/model_helpers/search.rb +6 -6
  15. data/examples/datacatalog/models/categorization.rb +1 -1
  16. data/examples/datacatalog/models/note.rb +1 -1
  17. data/examples/datacatalog/models/source.rb +3 -3
  18. data/examples/datacatalog/models/usage.rb +2 -2
  19. data/examples/datacatalog/models/user.rb +7 -7
  20. data/examples/datacatalog/resources/categories.rb +7 -7
  21. data/examples/datacatalog/resources/categories_sources.rb +4 -4
  22. data/examples/datacatalog/resources/notes.rb +1 -1
  23. data/examples/datacatalog/resources/sources.rb +3 -3
  24. data/examples/datacatalog/resources/sources_usages.rb +3 -3
  25. data/examples/datacatalog/resources/users.rb +3 -3
  26. data/examples/datacatalog/tasks/db.rake +2 -2
  27. data/examples/datacatalog/tasks/test.rake +1 -1
  28. data/examples/datacatalog/test/helpers/assertions/assert_include.rb +1 -1
  29. data/examples/datacatalog/test/helpers/assertions/assert_not_include.rb +1 -1
  30. data/examples/datacatalog/test/helpers/lib/model_factories.rb +7 -7
  31. data/examples/datacatalog/test/helpers/lib/model_helpers.rb +1 -1
  32. data/examples/datacatalog/test/helpers/lib/request_helpers.rb +7 -7
  33. data/examples/datacatalog/test/helpers/resource_test_helper.rb +1 -1
  34. data/examples/datacatalog/test/helpers/shared/api_keys.rb +11 -11
  35. data/examples/datacatalog/test/helpers/shared/common_body_responses.rb +1 -1
  36. data/examples/datacatalog/test/helpers/shared/model_counts.rb +2 -2
  37. data/examples/datacatalog/test/helpers/shared/status_codes.rb +4 -4
  38. data/examples/datacatalog/test/helpers/test_cases/resource_test_case.rb +4 -4
  39. data/examples/datacatalog/test/helpers/test_helper.rb +4 -10
  40. data/examples/datacatalog/test/models/categorization_test.rb +6 -6
  41. data/examples/datacatalog/test/models/category_test.rb +8 -8
  42. data/examples/datacatalog/test/models/note_test.rb +6 -6
  43. data/examples/datacatalog/test/models/search_test.rb +4 -4
  44. data/examples/datacatalog/test/models/source_test.rb +5 -5
  45. data/examples/datacatalog/test/models/user_test.rb +11 -11
  46. data/examples/datacatalog/test/resources/categories/categories_delete_test.rb +12 -12
  47. data/examples/datacatalog/test/resources/categories/categories_get_many_test.rb +9 -9
  48. data/examples/datacatalog/test/resources/categories/categories_get_one_test.rb +7 -7
  49. data/examples/datacatalog/test/resources/categories/categories_post_test.rb +16 -16
  50. data/examples/datacatalog/test/resources/categories/categories_put_test.rb +17 -17
  51. data/examples/datacatalog/test/resources/categories_sources/categories_sources_delete_test.rb +25 -25
  52. data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_many_test.rb +5 -5
  53. data/examples/datacatalog/test/resources/categories_sources/categories_sources_get_one_test.rb +15 -15
  54. data/examples/datacatalog/test/resources/categories_sources/categories_sources_post_test.rb +31 -31
  55. data/examples/datacatalog/test/resources/categories_sources/categories_sources_put_test.rb +41 -41
  56. data/examples/datacatalog/test/resources/notes/notes_get_many_test.rb +15 -15
  57. data/examples/datacatalog/test/resources/notes/notes_get_one_test.rb +7 -7
  58. data/examples/datacatalog/test/resources/notes/notes_post_test.rb +12 -12
  59. data/examples/datacatalog/test/resources/sources/sources_delete_test.rb +12 -12
  60. data/examples/datacatalog/test/resources/sources/sources_get_many_search_test.rb +20 -20
  61. data/examples/datacatalog/test/resources/sources/sources_get_many_test.rb +8 -8
  62. data/examples/datacatalog/test/resources/sources/sources_get_one_test.rb +17 -9
  63. data/examples/datacatalog/test/resources/sources/sources_post_test.rb +13 -13
  64. data/examples/datacatalog/test/resources/sources/sources_put_test.rb +30 -30
  65. data/examples/datacatalog/test/resources/sources_usages/sources_usages_delete_test.rb +24 -24
  66. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_filter_test.rb +9 -9
  67. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_many_test.rb +9 -9
  68. data/examples/datacatalog/test/resources/sources_usages/sources_usages_get_one_test.rb +15 -15
  69. data/examples/datacatalog/test/resources/sources_usages/sources_usages_post_test.rb +16 -16
  70. data/examples/datacatalog/test/resources/sources_usages/sources_usages_put_test.rb +33 -33
  71. data/examples/datacatalog/test/resources/users/users_delete_test.rb +21 -21
  72. data/examples/datacatalog/test/resources/users/users_get_many_test.rb +16 -16
  73. data/examples/datacatalog/test/resources/users/users_get_one_test.rb +8 -8
  74. data/examples/datacatalog/test/resources/users/users_post_test.rb +13 -13
  75. data/examples/datacatalog/test/resources/users/users_put_test.rb +18 -18
  76. data/lib/builder/action_definitions.rb +8 -8
  77. data/lib/builder/helpers.rb +10 -12
  78. data/lib/builder/mongo_helpers.rb +13 -14
  79. data/lib/builder.rb +10 -10
  80. data/lib/exceptions.rb +1 -1
  81. data/lib/resource.rb +20 -20
  82. data/lib/roles.rb +2 -2
  83. data/lib/utility.rb +2 -2
  84. data/notes/permissions.mdown +6 -6
  85. data/sinatra_resource.gemspec +9 -4
  86. data/spec/spec_helper.rb +1 -1
  87. data/spec/utility_spec.rb +2 -2
  88. metadata +30 -4
data/Gemfile ADDED
@@ -0,0 +1,18 @@
1
+ source :rubygems
2
+
3
+ gem 'query_string_filter', '>= 0.1.4'
4
+
5
+ gem 'activesupport', '~> 2.3.8'
6
+ gem 'frequency', '>= 0.1.2', '< 0.2.0'
7
+ gem 'kronos', '>= 0.1.6'
8
+ gem 'mongo_mapper', '= 0.8.4'
9
+ gem 'sinatra', '>= 1.0'
10
+ gem 'sinatra_resource', '>= 0.4.21', '< 0.5'
11
+
12
+ group :test do
13
+ gem 'crack', '>= 0.1.4'
14
+ gem 'pending', '>= 0.1.1'
15
+ gem 'rr', '>= 0.10.11'
16
+ gem 'timecop', '>= 0.3.5'
17
+ gem 'tu-context', '>= 0.5.8'
18
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,51 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (2.3.8)
5
+ bson (1.0.4)
6
+ crack (0.1.8)
7
+ frequency (0.1.5)
8
+ jnunemaker-validatable (1.8.4)
9
+ activesupport (>= 2.3.4)
10
+ kronos (0.1.7)
11
+ mongo (1.0.7)
12
+ bson (>= 1.0.4)
13
+ mongo_mapper (0.8.2)
14
+ activesupport (>= 2.3.4)
15
+ jnunemaker-validatable (~> 1.8.4)
16
+ plucky (~> 0.3.1)
17
+ pending (0.1.1)
18
+ plucky (0.3.4)
19
+ mongo (~> 1.0.7)
20
+ polyglot (0.3.1)
21
+ query_string_filter (0.1.6)
22
+ treetop (>= 1.4.2)
23
+ rack (1.2.1)
24
+ rr (0.10.11)
25
+ sinatra (1.0)
26
+ rack (>= 1.0)
27
+ sinatra_resource (0.4.21)
28
+ mongo_mapper (= 0.8.2)
29
+ query_string_filter (>= 0.1.4)
30
+ sinatra (>= 1.0)
31
+ timecop (0.3.5)
32
+ treetop (1.4.8)
33
+ polyglot (>= 0.3.1)
34
+ tu-context (0.5.8)
35
+
36
+ PLATFORMS
37
+ ruby
38
+
39
+ DEPENDENCIES
40
+ activesupport (~> 2.3.8)
41
+ crack (>= 0.1.4)
42
+ frequency (>= 0.1.2, < 0.2.0)
43
+ kronos (>= 0.1.6)
44
+ mongo_mapper (= 0.8.2)
45
+ pending (>= 0.1.1)
46
+ query_string_filter (>= 0.1.4)
47
+ rr (>= 0.10.11)
48
+ sinatra (>= 1.0)
49
+ sinatra_resource (>= 0.4.21, < 0.5)
50
+ timecop (>= 0.3.5)
51
+ tu-context (>= 0.5.8)
data/README.mdown CHANGED
@@ -16,7 +16,7 @@ You will need gemcutter if you don't have it already:
16
16
  I recommend a user-level install:
17
17
 
18
18
  gem install resource_sinatra
19
-
19
+
20
20
  Note: in general, beware of `sudo gem install <project_name>` -- it gives elevated privileges. Do you trust `<project name>`? Better to be safe and use a local install to `~/.gem`.
21
21
 
22
22
  ## Usage
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.21
1
+ 0.4.22
@@ -0,0 +1,2 @@
1
+ ---
2
+ BUNDLE_DISABLE_SHARED_GEMS: "1"
@@ -0,0 +1,14 @@
1
+ source :rubygems
2
+
3
+ gem 'sinatra', '>= 1.0'
4
+ gem 'mongo_mapper', '= 0.8.4'
5
+
6
+ group :test do
7
+ gem 'crack', '>= 0.1.4'
8
+ gem 'pending', '>= 0.1.1'
9
+ gem 'tu-context', '>= 0.5.8'
10
+ end
11
+
12
+ group :development do
13
+ gem 'yard'
14
+ end
@@ -0,0 +1,33 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (2.3.8)
5
+ bson (1.0.7)
6
+ crack (0.1.8)
7
+ jnunemaker-validatable (1.8.4)
8
+ activesupport (>= 2.3.4)
9
+ mongo (1.0.8)
10
+ bson (>= 1.0.5)
11
+ mongo_mapper (0.8.4)
12
+ activesupport (>= 2.3.4)
13
+ jnunemaker-validatable (~> 1.8.4)
14
+ plucky (~> 0.3.5)
15
+ pending (0.1.1)
16
+ plucky (0.3.5)
17
+ mongo (~> 1.0.8)
18
+ rack (1.2.1)
19
+ sinatra (1.0)
20
+ rack (>= 1.0)
21
+ tu-context (0.5.8)
22
+ yard (0.5.8)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ crack (>= 0.1.4)
29
+ mongo_mapper (= 0.8.4)
30
+ pending (>= 0.1.1)
31
+ sinatra (>= 1.0)
32
+ tu-context (>= 0.5.8)
33
+ yard
@@ -13,11 +13,11 @@ namespace :environment do
13
13
  puts "Loading application environment..."
14
14
  require File.dirname(__FILE__) + '/app'
15
15
  end
16
-
16
+
17
17
  task :models do
18
18
  puts "Loading models..."
19
19
  Config.setup_mongomapper
20
20
  base = File.dirname(__FILE__)
21
- Dir.glob(base + '/models/*.rb' ).each { |f| require f }
21
+ Dir.glob(base + '/models/*.rb').each { |f| require f }
22
22
  end
23
23
  end
@@ -1,6 +1,4 @@
1
1
  require 'rubygems'
2
-
3
- gem 'sinatra', '>= 1.0'
4
2
  require 'sinatra/base'
5
3
 
6
4
  require File.dirname(__FILE__) + '/config/config'
@@ -1,20 +1,18 @@
1
1
  require 'rubygems'
2
-
3
- gem 'mongo_mapper', '= 0.8.2'
4
2
  require 'mongo_mapper'
5
3
 
6
4
  module Config
7
-
5
+
8
6
  def self.setup
9
7
  setup_mongomapper
10
8
  # More application setup can go here...
11
9
  end
12
-
10
+
13
11
  def self.setup_mongomapper
14
12
  MongoMapper.connection = new_mongo_connection
15
13
  MongoMapper.database = environment_config['mongo_database']
16
14
  end
17
-
15
+
18
16
  def self.new_mongo_connection
19
17
  Mongo::Connection.new(environment_config["mongo_hostname"])
20
18
  end
@@ -44,7 +42,7 @@ module Config
44
42
  end
45
43
  end
46
44
  end
47
-
45
+
48
46
  def self.environment=(env)
49
47
  @environment = env
50
48
  end
@@ -52,7 +50,7 @@ module Config
52
50
  def self.environments
53
51
  config.keys
54
52
  end
55
-
53
+
56
54
  def self.config
57
55
  if @config
58
56
  @config
@@ -1,9 +1,9 @@
1
1
  module DataCatalog
2
-
2
+
3
3
  class Base < Sinatra::Base
4
4
  before do
5
5
  content_type :json
6
6
  end
7
7
  end
8
-
8
+
9
9
  end
@@ -1,9 +1,9 @@
1
1
  require 'uri'
2
2
 
3
3
  module DataCatalog
4
-
4
+
5
5
  module Resource
6
-
6
+
7
7
  def self.included(includee)
8
8
  includee.instance_eval do
9
9
  include SinatraResource::Resource
@@ -21,12 +21,12 @@ module DataCatalog
21
21
  def convert(object)
22
22
  object == "" ? "" : object.to_json
23
23
  end
24
-
24
+
25
25
  def full_uri(path)
26
26
  base_uri = Config.environment_config["base_uri"]
27
27
  URI.join(base_uri, path).to_s
28
28
  end
29
-
29
+
30
30
  def log_event(event, params)
31
31
  # Application-logic could go here.
32
32
  end
@@ -73,5 +73,5 @@ module DataCatalog
73
73
  end
74
74
 
75
75
  end
76
-
76
+
77
77
  end
@@ -1,10 +1,10 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../../lib/sinatra_resource')
2
2
 
3
3
  module DataCatalog
4
-
4
+
5
5
  module Roles
6
6
  include SinatraResource::Roles
7
-
7
+
8
8
  role :anonymous
9
9
  role :basic => :anonymous
10
10
  role :owner => :basic
@@ -1,7 +1,7 @@
1
1
  module DataCatalog
2
-
2
+
3
3
  class Search
4
-
4
+
5
5
  # Returns an array of strings, tokenized with stopwords removed.
6
6
  #
7
7
  # @param [<String>] array
@@ -11,7 +11,7 @@ module DataCatalog
11
11
  def self.process(array)
12
12
  unstop(tokenize(array))
13
13
  end
14
-
14
+
15
15
  # Tokenize an array of strings.
16
16
  #
17
17
  # @param [<String>] array
@@ -25,7 +25,7 @@ module DataCatalog
25
25
  end
26
26
 
27
27
  REMOVE = %r([!,;])
28
-
28
+
29
29
  # Tokenize a string, removing extra characters too.
30
30
  #
31
31
  # @param [String] string
@@ -86,7 +86,7 @@ module DataCatalog
86
86
  def self.unstop(array)
87
87
  array - STOP_WORDS
88
88
  end
89
-
89
+
90
90
  end
91
-
91
+
92
92
  end
@@ -18,7 +18,7 @@ module DataCatalog
18
18
  belongs_to :category, :class_name => 'DataCatalog::Category'
19
19
 
20
20
  # == Validations
21
-
21
+
22
22
  validate :validate_associations
23
23
 
24
24
  def validate_associations
@@ -9,7 +9,7 @@ module DataCatalog
9
9
  key :text, String
10
10
  key :user_id, ObjectId
11
11
  timestamps!
12
-
12
+
13
13
  # == Indices
14
14
 
15
15
  # == Associations
@@ -1,5 +1,5 @@
1
1
  module DataCatalog
2
-
2
+
3
3
  class Source
4
4
 
5
5
  include MongoMapper::Document
@@ -35,9 +35,9 @@ module DataCatalog
35
35
 
36
36
  validates_presence_of :title
37
37
  validates_presence_of :url
38
-
38
+
39
39
  # == Callbacks
40
-
40
+
41
41
  before_save :update_keywords
42
42
  def update_keywords
43
43
  self._keywords = DataCatalog::Search.process([title, description])
@@ -1,7 +1,7 @@
1
1
  module DataCatalog
2
2
 
3
3
  class Usage
4
-
4
+
5
5
  include MongoMapper::EmbeddedDocument
6
6
 
7
7
  # == Attributes
@@ -21,7 +21,7 @@ module DataCatalog
21
21
  #
22
22
  # validates_presence_of :title
23
23
  # validates_presence_of :url
24
-
24
+
25
25
  # == Class Methods
26
26
 
27
27
  # == Various Instance Methods
@@ -1,9 +1,9 @@
1
1
  require 'digest/sha1'
2
2
 
3
3
  module DataCatalog
4
-
4
+
5
5
  class User
6
-
6
+
7
7
  include MongoMapper::Document
8
8
 
9
9
  # == Attributes
@@ -19,7 +19,7 @@ module DataCatalog
19
19
  ensure_index :email
20
20
 
21
21
  # == Validations
22
-
22
+
23
23
  validates_presence_of :name
24
24
  validates_presence_of :role
25
25
  validate :validate_role
@@ -31,9 +31,9 @@ module DataCatalog
31
31
  errors.add(:role, "must be in #{VALID_ROLES.inspect}")
32
32
  end
33
33
  end
34
-
34
+
35
35
  # == Callbacks
36
-
36
+
37
37
  before_create :assign_api_key
38
38
  def assign_api_key
39
39
  unless _api_key
@@ -46,9 +46,9 @@ module DataCatalog
46
46
  s = "#{Time.now.to_f}#{salt}#{rand(100_000_000)}#{name}#{email}"
47
47
  Digest::SHA1.hexdigest(s)
48
48
  end
49
-
49
+
50
50
  # == Various Instance Methods
51
-
51
+
52
52
  def token
53
53
  Digest::SHA1.hexdigest("#{id}/#{email}/123456789")
54
54
  end
@@ -15,7 +15,7 @@ module DataCatalog
15
15
  permission :delete => :curator
16
16
 
17
17
  # == Properties
18
-
18
+
19
19
  property :name
20
20
  property :log
21
21
 
@@ -29,13 +29,13 @@ module DataCatalog
29
29
  }
30
30
  end
31
31
  end
32
-
32
+
33
33
  # == Callbacks
34
-
34
+
35
35
  callback :before_create do |action|
36
36
  action.params["log"] = "before_create"
37
37
  end
38
-
38
+
39
39
  callback :after_create do |action, category|
40
40
  category.log += " after_create"
41
41
  end
@@ -43,7 +43,7 @@ module DataCatalog
43
43
  callback :before_update do |action, category|
44
44
  action.params["log"] = "before_update"
45
45
  end
46
-
46
+
47
47
  callback :after_update do |action, category|
48
48
  category.log += " after_update"
49
49
  end
@@ -51,14 +51,14 @@ module DataCatalog
51
51
  callback :before_destroy do |action, category|
52
52
  action.headers 'X-Test-Callbacks' => 'before_destroy'
53
53
  end
54
-
54
+
55
55
  callback :after_destroy do |action, category|
56
56
  x = action.response['X-Test-Callbacks']
57
57
  action.headers 'X-Test-Callbacks' => "#{x} after_destroy"
58
58
  end
59
59
 
60
60
  end
61
-
61
+
62
62
  Categories.build
63
63
 
64
64
  end
@@ -14,7 +14,7 @@ module DataCatalog
14
14
  :source_id => child.id
15
15
  )
16
16
  end
17
-
17
+
18
18
  relation :delete do |parent, child|
19
19
  Categorization.find(:conditions => {
20
20
  :category_id => parent.id,
@@ -30,7 +30,7 @@ module DataCatalog
30
30
  permission :create => :curator
31
31
  permission :update => :curator
32
32
  permission :delete => :curator
33
-
33
+
34
34
  # == Properties
35
35
 
36
36
  property :title
@@ -38,9 +38,9 @@ module DataCatalog
38
38
  property :raw, :w => :admin
39
39
 
40
40
  # == Callbacks
41
-
41
+
42
42
  end
43
-
43
+
44
44
  CategoriesSources.build
45
45
 
46
46
  end
@@ -22,7 +22,7 @@ module DataCatalog
22
22
  # == Callbacks
23
23
 
24
24
  end
25
-
25
+
26
26
  Notes.build
27
27
 
28
28
  end
@@ -13,13 +13,13 @@ module DataCatalog
13
13
  permission :create => :curator
14
14
  permission :update => :curator
15
15
  permission :delete => :curator
16
-
16
+
17
17
  # == Properties
18
18
 
19
19
  property :title
20
20
  property :url
21
21
  property :raw, :w => :admin, :hide_by_default => true
22
-
22
+
23
23
  property :categories do |source|
24
24
  source.categorizations.map do |categorization|
25
25
  {
@@ -32,7 +32,7 @@ module DataCatalog
32
32
 
33
33
  # == Callbacks
34
34
  end
35
-
35
+
36
36
  Sources.build
37
37
 
38
38
  end
@@ -16,7 +16,7 @@ module DataCatalog
16
16
  permission :create => :curator
17
17
  permission :update => :curator
18
18
  permission :delete => :curator
19
-
19
+
20
20
  # == Properties
21
21
 
22
22
  property :title
@@ -24,9 +24,9 @@ module DataCatalog
24
24
  property :description
25
25
 
26
26
  # == Callbacks
27
-
27
+
28
28
  end
29
-
29
+
30
30
  SourcesUsages.build
31
31
 
32
32
  end
@@ -15,19 +15,19 @@ module DataCatalog
15
15
  permission :delete => :owner
16
16
 
17
17
  # == Properties
18
-
18
+
19
19
  property :name, :r => :basic
20
20
  property :email, :r => :owner
21
21
  property :role, :r => :owner, :w => :admin
22
22
  property :_api_key, :r => :owner, :w => :admin
23
-
23
+
24
24
  property :token, :r => :owner do |user|
25
25
  user.token
26
26
  end
27
27
 
28
28
  # == Callbacks
29
29
  end
30
-
30
+
31
31
  Users.build
32
32
 
33
33
  end
@@ -1,5 +1,5 @@
1
1
  namespace :db do
2
-
2
+
3
3
  def verbosely_drop_database
4
4
  db_name = Config.drop_database
5
5
  puts "Dropped database: #{db_name}."
@@ -25,5 +25,5 @@ namespace :db do
25
25
  verbosely_drop_database
26
26
  end
27
27
  end
28
-
28
+
29
29
  end
@@ -2,7 +2,7 @@ desc "Run tests"
2
2
  task :test => %w(db:reset:test test:models test:resources)
3
3
 
4
4
  namespace :test do
5
-
5
+
6
6
  desc "Run model tests"
7
7
  Rake::TestTask.new(:models) do |t|
8
8
  t.test_files = FileList["test/models/*_test.rb"]
@@ -11,7 +11,7 @@ module Test
11
11
  end
12
12
  end
13
13
  end
14
-
14
+
15
15
  end
16
16
  end
17
17
  end
@@ -11,7 +11,7 @@ module Test
11
11
  end
12
12
  end
13
13
  end
14
-
14
+
15
15
  end
16
16
  end
17
17
  end
@@ -1,25 +1,25 @@
1
1
  module ModelFactories
2
-
2
+
3
3
  def create_source(custom={})
4
4
  create_model!(DataCatalog::Source, custom, {
5
5
  :title => "Healthcare Spending Data",
6
6
  :url => "http://data.gov/details/23",
7
7
  })
8
8
  end
9
-
9
+
10
10
  def create_category(custom={})
11
11
  create_model!(DataCatalog::Category, custom, {
12
12
  :name => "Sample Category",
13
13
  })
14
14
  end
15
-
15
+
16
16
  def create_categorization(custom={})
17
17
  create_model!(DataCatalog::Categorization, custom, {
18
18
  :source_id => "",
19
19
  :category_id => "",
20
20
  })
21
21
  end
22
-
22
+
23
23
  def create_note(custom={})
24
24
  create_model!(DataCatalog::Note, custom, {
25
25
  :text => "Sample Note",
@@ -34,9 +34,9 @@ module ModelFactories
34
34
  :role => "basic",
35
35
  })
36
36
  end
37
-
37
+
38
38
  # -----
39
-
39
+
40
40
  def new_usage(custom={})
41
41
  new_model!(DataCatalog::Usage, custom, {
42
42
  :title => "Sample Usage",
@@ -62,5 +62,5 @@ module ModelFactories
62
62
  end
63
63
  model
64
64
  end
65
-
65
+
66
66
  end
@@ -3,7 +3,7 @@ module ModelHelpers
3
3
  def self.included(includee)
4
4
  includee.extend(ClassMethods)
5
5
  end
6
-
6
+
7
7
  module ClassMethods
8
8
 
9
9
  # Is a document (looked up from +symbol+) missing +key+?