namelessjon-dm-gen 0.2.5 → 0.3.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.
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2008 Jonathan Stott
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/lib/dm_gen.rb CHANGED
@@ -11,7 +11,7 @@ require 'templater'
11
11
  module DMGen
12
12
  extend Templater::Manifold
13
13
 
14
- DM_VERSION = '0.9.11'
14
+ DM_VERSION = '0.10.0'
15
15
 
16
16
  desc <<-eos
17
17
  Generates files for the DataMapper ORM.
@@ -1,4 +1,3 @@
1
- gem 'dm-core', '~> <%= DMGen::DM_VERSION %>'
2
1
  require 'dm-core'
3
2
 
4
3
  module DataMapper
@@ -18,104 +17,81 @@ module DataMapper
18
17
  # each have a key that can be used to quickly look them up later without
19
18
  # searching, if the adapter supports it.
20
19
  #
21
- # @param [Array<DataMapper::Resource>] resources
20
+ # @param [Enumerable(Resource)] resources
22
21
  # The set of resources (model instances)
23
22
  #
24
- # @return [Integer]
25
- # The number of records that were actually saved into the data-store
26
- #
27
23
  # @api semipublic
28
24
  def create(resources)
29
25
  raise NotImplementedError
30
26
  end
31
27
 
32
28
  ##
33
- # Used by DataMapper to update the attributes on existing records in a
34
- # data-store: "UPDATE" in SQL-speak. It takes a hash of the attributes
35
- # to update with, as well as a query object that specifies which resources
36
- # should be updated.
37
- #
38
- # @param [Hash] attributes
39
- # A set of key-value pairs of the attributes to update the resources with.
40
- # @param [DataMapper::Query] query
41
- # The query that should be used to find the resource(s) to update.
42
- #
43
- # @return [Integer]
44
- # the number of records that were successfully updated
29
+ # Looks up one record or a collection of records from the data-store:
30
+ # "SELECT" in SQL.
45
31
  #
46
- # @api semipublic
47
- def update(attributes, query)
48
- raise NotImplementedError
49
- end
50
-
51
- ##
52
- # Look up a single record from the data-store. "SELECT ... LIMIT 1" in SQL.
53
- # Used by Model#get to find a record by its identifier(s), and Model#first
54
- # to find a single record by some search query.
55
- #
56
- # @param [DataMapper::Query] query
57
- # The query to be used to locate the resource.
32
+ # @param [Query] query
33
+ # The query to be used to seach for the resources
58
34
  #
59
- # @return [DataMapper::Resource]
60
- # A Resource object representing the record that was found, or nil for no
61
- # matching records.
35
+ # @return [Array]
36
+ # An Array of Hashes containing the key-value pairs for
37
+ # each record
62
38
  #
63
39
  # @api semipublic
64
- def read_one(query)
40
+ def read(query)
65
41
  raise NotImplementedError
66
42
  end
67
43
 
68
44
  ##
69
- # Looks up a collection of records from the data-store: "SELECT" in SQL.
70
- # Used by Model#all to search for a set of records; that set is in a
71
- # DataMapper::Collection object.
72
- #
73
- # @param [DataMapper::Query] query
74
- # The query to be used to seach for the resources
45
+ # Used by DataMapper to update the attributes on existing records in a
46
+ # data-store: "UPDATE" in SQL-speak. It takes a hash of the attributes
47
+ # to update with, as well as a collection object that specifies which resources
48
+ # should be updated.
75
49
  #
76
- # @return [DataMapper::Collection]
77
- # A collection of all the resources found by the query.
50
+ # @param [Hash] attributes
51
+ # A set of key-value pairs of the attributes to update the resources with.
52
+ # @param [DataMapper::Collection] resources
53
+ # The collection of resources to update.
78
54
  #
79
55
  # @api semipublic
80
- def read_many(query)
56
+ def update(attributes, collection)
81
57
  raise NotImplementedError
82
58
  end
83
59
 
84
60
  ##
85
61
  # Destroys all the records matching the given query. "DELETE" in SQL.
86
62
  #
87
- # @param [DataMapper::Query] query
88
- # The query used to locate the resources to be deleted.
63
+ # @param [DataMapper::Collection] resources
64
+ # The collection of resources to delete.
89
65
  #
90
66
  # @return [Integer]
91
67
  # The number of records that were deleted.
92
68
  #
93
69
  # @api semipublic
94
- def delete(query)
70
+ def delete(collection)
95
71
  raise NotImplementedError
96
72
  end
97
73
 
98
74
  private
99
75
 
100
76
  ##
101
- # Make a new instance of the adapter. The @model_records ivar is the 'data-store'
102
- # for this adapter. It is not shared amongst multiple incarnations of this
103
- # adapter, eg DataMapper.setup(:default, :adapter => :in_memory);
104
- # DataMapper.setup(:alternate, :adapter => :in_memory) do not share the
105
- # data-store between them.
106
- #
77
+ # Make a new instance of the adapter.
78
+ #
107
79
  # @param [String, Symbol] name
108
- # The name of the DataMapper::Repository using this adapter.
80
+ # The name of the Repository using this adapter.
109
81
  # @param [String, Hash] uri_or_options
110
82
  # The connection uri string, or a hash of options to set up
111
83
  # the adapter
112
84
  #
113
85
  # @api semipublic
114
- def initialize(name, uri_or_options)
86
+ def initialize(name, options = {})
115
87
  super
116
- @identity_maps = {}
117
88
  end
118
89
 
119
- end
120
- end
121
- end
90
+ end # class <%= class_name %>
91
+
92
+ ##
93
+ #
94
+ # This can be used by plugins to trigger hooks for your adapter.
95
+ const_added(:<%= class_name %>)
96
+ end # module Adapters
97
+ end # module DataMapper
@@ -1,6 +1,36 @@
1
1
  require 'pathname'
2
2
  require Pathname(__FILE__).dirname.expand_path.parent + 'spec_helper'
3
3
 
4
+
5
+ # load up the shared specs.
6
+ require 'dm-core/spec/adapter_shared_spec'
7
+
4
8
  describe 'DataMapper::Adapters::<%= class_name %>' do
9
+ before :all do
10
+ class ::Heffalump
11
+ include DataMapper::Resource
12
+
13
+ property :id, Serial
14
+ property :name, String
15
+ property :num_spots, Integer
16
+ property :striped, Boolean
17
+ end
18
+
19
+ @model = Heffalump
20
+ end
21
+
22
+ supported_by :<%= snake_name %> do
23
+ before :all do
24
+ @model.all.destroy!
25
+
26
+ @heff1 = @model.create(:color => 'Black', :num_spots => 0, :striped => true)
27
+ @heff2 = @model.create(:color => 'Brown', :num_spots => 25, :striped => false)
28
+ @heff3 = @model.create(:color => 'Dark Blue', :num_spots => nil, :striped => false)
29
+
30
+ @string_property = @model.color
31
+ @integer_property = @model.num_spots
32
+ end
5
33
 
34
+ it_should_behave_like 'An Adapter'
35
+ end
6
36
  end
@@ -2,8 +2,6 @@
2
2
  #
3
3
  # A one file test to show ...
4
4
  require 'rubygems'
5
-
6
- gem('dm-core', '~> <%= DMGen::DM_VERSION %>')
7
5
  require 'dm-core'
8
6
 
9
7
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: namelessjon-dm-gen
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Stott
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-05-23 00:00:00 -07:00
12
+ date: 2009-07-10 00:00:00 -07:00
13
13
  default_executable: dm-gen
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -28,69 +28,55 @@ executables:
28
28
  - dm-gen
29
29
  extensions: []
30
30
 
31
- extra_rdoc_files: []
32
-
33
- files:
31
+ extra_rdoc_files:
32
+ - LICENSE
34
33
  - README.rdoc
34
+ files:
35
35
  - CHANGELOG.rdoc
36
+ - README.rdoc
36
37
  - bin/dm-gen
37
- - lib/templates
38
- - lib/templates/is
39
- - lib/templates/is/lib
40
- - lib/templates/is/lib/%gem_name%
41
- - lib/templates/is/lib/%gem_name%/is
42
- - lib/templates/is/lib/%gem_name%/is/%snake_name%.rb
43
- - lib/templates/is/lib/%gem_name%/is/version.rb
44
- - lib/templates/is/lib/%gem_name%.rb
45
- - lib/templates/is/History.txt
46
- - lib/templates/is/LICENSE
47
- - lib/templates/is/README.txt
48
- - lib/templates/is/TODO
49
- - lib/templates/is/spec
50
- - lib/templates/is/spec/integration
51
- - lib/templates/is/spec/integration/%snake_name%_spec.rb
52
- - lib/templates/is/spec/spec.opts
53
- - lib/templates/is/spec/spec_helper.rb
54
- - lib/templates/is/tasks
55
- - lib/templates/is/tasks/install.rb
56
- - lib/templates/is/tasks/spec.rb
57
- - lib/templates/is/Manifest.txt
58
- - lib/templates/is/Rakefile
59
- - lib/templates/adapter
38
+ - lib/dm_gen.rb
39
+ - lib/generators/adapter.rb
40
+ - lib/generators/is.rb
41
+ - lib/generators/one_file.rb
60
42
  - lib/templates/adapter/History.txt
61
43
  - lib/templates/adapter/LICENSE
62
44
  - lib/templates/adapter/Manifest.txt
63
45
  - lib/templates/adapter/README.txt
46
+ - lib/templates/adapter/Rakefile
64
47
  - lib/templates/adapter/TODO
65
- - lib/templates/adapter/lib
66
- - lib/templates/adapter/lib/%adapter_file%
67
- - lib/templates/adapter/lib/%adapter_file%/version.rb
68
48
  - lib/templates/adapter/lib/%adapter_file%.rb
69
- - lib/templates/adapter/spec
70
- - lib/templates/adapter/spec/integration
49
+ - lib/templates/adapter/lib/%adapter_file%/version.rb
71
50
  - lib/templates/adapter/spec/integration/%adapter_file%_spec.rb
72
51
  - lib/templates/adapter/spec/spec.opts
73
52
  - lib/templates/adapter/spec/spec_helper.rb
74
- - lib/templates/adapter/tasks
75
53
  - lib/templates/adapter/tasks/install.rb
76
54
  - lib/templates/adapter/tasks/spec.rb
77
- - lib/templates/adapter/Rakefile
55
+ - lib/templates/is/History.txt
56
+ - lib/templates/is/LICENSE
57
+ - lib/templates/is/Manifest.txt
58
+ - lib/templates/is/README.txt
59
+ - lib/templates/is/Rakefile
60
+ - lib/templates/is/TODO
61
+ - lib/templates/is/lib/%gem_name%.rb
62
+ - lib/templates/is/lib/%gem_name%/is/%snake_name%.rb
63
+ - lib/templates/is/lib/%gem_name%/is/version.rb
64
+ - lib/templates/is/spec/integration/%snake_name%_spec.rb
65
+ - lib/templates/is/spec/spec.opts
66
+ - lib/templates/is/spec/spec_helper.rb
67
+ - lib/templates/is/tasks/install.rb
68
+ - lib/templates/is/tasks/spec.rb
78
69
  - lib/templates/one_file.rb
79
- - lib/generators
80
- - lib/generators/one_file.rb
81
- - lib/generators/adapter.rb
82
- - lib/generators/is.rb
83
- - lib/dm_gen.rb
84
- - spec/is_plugin_spec.rb
85
- - spec/dm_gen_spec.rb
86
70
  - spec/adapter_spec.rb
87
- - spec/spec_helper.rb
71
+ - spec/dm_gen_spec.rb
72
+ - spec/is_plugin_spec.rb
88
73
  - spec/one_file_spec.rb
74
+ - spec/spec_helper.rb
75
+ - LICENSE
89
76
  has_rdoc: false
90
77
  homepage: http://github.com/namelessjon/dm-gen
91
78
  post_install_message:
92
79
  rdoc_options:
93
- - --inline-source
94
80
  - --charset=UTF-8
95
81
  require_paths:
96
82
  - lib
@@ -113,5 +99,9 @@ rubygems_version: 1.2.0
113
99
  signing_key:
114
100
  specification_version: 3
115
101
  summary: Simple commandline tool for generating dm models
116
- test_files: []
117
-
102
+ test_files:
103
+ - spec/is_plugin_spec.rb
104
+ - spec/dm_gen_spec.rb
105
+ - spec/adapter_spec.rb
106
+ - spec/spec_helper.rb
107
+ - spec/one_file_spec.rb