dm-predefined 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +9 -0
- data/Manifest.txt +8 -2
- data/README.txt +10 -3
- data/Rakefile +16 -6
- data/lib/dm-predefined/predefined.rb +36 -7
- data/lib/dm-predefined/version.rb +2 -1
- data/lib/dm-predefined/yard/handlers/ruby/legacy/predefine_handler.rb +26 -0
- data/lib/dm-predefined/yard/handlers/ruby/legacy.rb +1 -0
- data/lib/dm-predefined/yard/handlers/ruby/predefine_handler.rb +35 -0
- data/lib/dm-predefined/yard/handlers/ruby.rb +2 -0
- data/lib/dm-predefined/yard/handlers.rb +1 -0
- data/lib/dm-predefined/yard.rb +1 -0
- data/lib/dm-predefined.rb +1 -1
- data/spec/integration/{helpers → models}/test_model.rb +8 -5
- data/spec/integration/predefined_spec.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +59 -10
- metadata.gz.sig +0 -0
data/History.txt
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
=== 0.2.0 / 2009-09-21
|
2
|
+
|
3
|
+
* Require Hoe >= 2.3.3.
|
4
|
+
* Require YARD >= 0.2.3.5.
|
5
|
+
* Require dm-core >= 0.10.0.
|
6
|
+
* Moved to YARD based documentation.
|
7
|
+
* Added YARD handlers for documenting +predefine+ method-calls.
|
8
|
+
* Renamed Predefined.predefined to Predefined.predefine.
|
9
|
+
|
1
10
|
=== 0.1.1 / 2009-01-17
|
2
11
|
|
3
12
|
* Fixed specs to work with RSpec 1.1.12.
|
data/Manifest.txt
CHANGED
@@ -5,9 +5,15 @@ README.txt
|
|
5
5
|
Rakefile
|
6
6
|
TODO.txt
|
7
7
|
lib/dm-predefined.rb
|
8
|
+
lib/dm-predefined/exceptions/unknown_resource.rb
|
8
9
|
lib/dm-predefined/predefined.rb
|
9
10
|
lib/dm-predefined/version.rb
|
10
|
-
lib/dm-predefined/
|
11
|
-
|
11
|
+
lib/dm-predefined/yard.rb
|
12
|
+
lib/dm-predefined/yard/handlers.rb
|
13
|
+
lib/dm-predefined/yard/handlers/ruby.rb
|
14
|
+
lib/dm-predefined/yard/handlers/ruby/predefine_handler.rb
|
15
|
+
lib/dm-predefined/yard/handlers/ruby/legacy.rb
|
16
|
+
lib/dm-predefined/yard/handlers/ruby/legacy/predefine_handler.rb
|
17
|
+
spec/integration/models/test_model.rb
|
12
18
|
spec/integration/predefined_spec.rb
|
13
19
|
spec/spec_helper.rb
|
data/README.txt
CHANGED
@@ -24,8 +24,11 @@ A DataMapper plugin for adding predefined resources to Models.
|
|
24
24
|
# URL to the licence
|
25
25
|
property :url, String
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
predefine :gpl2,
|
28
|
+
:name => 'GPL-2',
|
29
|
+
:url => 'http://www.gnu.org/copyleft/gpl.html'
|
30
|
+
|
31
|
+
predefine :mit, :name => 'MIT'
|
29
32
|
|
30
33
|
end
|
31
34
|
|
@@ -35,13 +38,17 @@ A DataMapper plugin for adding predefined resources to Models.
|
|
35
38
|
Licence[:mit]
|
36
39
|
# => #<Licence: id: 2, name: "MIT">
|
37
40
|
|
41
|
+
== REQUIREMENTS:
|
42
|
+
|
43
|
+
* {YARD}[http://yard.soen.ca/] >= 0.2.3.5
|
44
|
+
|
38
45
|
== INSTALL:
|
39
46
|
|
40
47
|
$ sudo gem install dm-predefined
|
41
48
|
|
42
49
|
== LICENSE:
|
43
50
|
|
44
|
-
Copyright (c) 2008 Hal Brodigan
|
51
|
+
Copyright (c) 2008-2009 Hal Brodigan
|
45
52
|
|
46
53
|
Permission is hereby granted, free of charge, to any person obtaining
|
47
54
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -2,14 +2,24 @@
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'hoe'
|
5
|
+
require 'hoe/signing'
|
5
6
|
require './tasks/spec.rb'
|
6
|
-
require './
|
7
|
+
require './tasks/yard.rb'
|
7
8
|
|
8
|
-
Hoe.
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
Hoe.spec('dm-predefined') do
|
10
|
+
self.rubyforge_name = 'dm-predefined'
|
11
|
+
self.developer('Postmodern','postmodern.mod3@gmail.com')
|
12
|
+
self.remote_rdoc_dir = ''
|
13
|
+
self.extra_deps = [
|
14
|
+
['yard', '>=0.2.3.5'],
|
15
|
+
['dm-core', '>=0.10.0']
|
16
|
+
]
|
17
|
+
|
18
|
+
self.extra_dev_deps = [
|
19
|
+
['rspec', '>=1.2.8']
|
20
|
+
]
|
21
|
+
|
22
|
+
self.spec_extras = {:has_rdoc => 'yard'}
|
13
23
|
end
|
14
24
|
|
15
25
|
# vim: syntax=Ruby
|
@@ -2,35 +2,64 @@ require 'dm-predefined/exceptions/unknown_resource'
|
|
2
2
|
|
3
3
|
module DataMapper
|
4
4
|
module Predefined
|
5
|
-
|
6
|
-
#
|
5
|
+
#
|
6
|
+
# Fired when your plugin gets included into Resource.
|
7
7
|
#
|
8
8
|
def self.included(base)
|
9
9
|
base.extend DataMapper::Predefined::ClassMethods
|
10
10
|
end
|
11
11
|
|
12
12
|
module ClassMethods
|
13
|
+
#
|
14
|
+
# Finds or auto-creates the pre-defined resource with the given name.
|
15
|
+
#
|
16
|
+
# @param [Symbol, String] name
|
17
|
+
# The name of the pre-defined resource.
|
18
|
+
#
|
19
|
+
# @return [Object]
|
20
|
+
# The pre-defined resource.
|
21
|
+
#
|
13
22
|
def [](name)
|
14
23
|
name = name.to_sym
|
15
|
-
attributes = predefined_attributes[name]
|
24
|
+
attributes = self.predefined_attributes[name]
|
16
25
|
|
17
26
|
unless attributes
|
18
27
|
raise(UnknownResource,"the resource '#{name}' was not predefined",caller)
|
19
28
|
end
|
20
29
|
|
21
|
-
first_or_create(
|
30
|
+
self.first_or_create(attributes)
|
22
31
|
end
|
23
32
|
|
24
33
|
protected
|
25
34
|
|
35
|
+
@@predefined_attributes = {}
|
36
|
+
|
37
|
+
#
|
38
|
+
# All pre-defined resources of the model.
|
39
|
+
#
|
40
|
+
# @return [Hash{Symbol => Hash}]
|
41
|
+
# The Hash of pre-defined resources and their attributes.
|
42
|
+
#
|
26
43
|
def predefined_attributes
|
27
|
-
@@predefined_attributes
|
44
|
+
@@predefined_attributes
|
28
45
|
end
|
29
46
|
|
30
|
-
|
47
|
+
#
|
48
|
+
# Defines a new pre-defined resource for the model.
|
49
|
+
#
|
50
|
+
# @param [Symbol, String] name
|
51
|
+
# The name of the pre-defined resource.
|
52
|
+
#
|
53
|
+
# @param [Hash] attributes
|
54
|
+
# The attributes for the pre-defined resource.
|
55
|
+
#
|
56
|
+
# @return [Hash]
|
57
|
+
# The attributes that will be assigned to the pre-defined resource.
|
58
|
+
#
|
59
|
+
def predefine(name,attributes={})
|
31
60
|
name = name.to_s
|
32
61
|
|
33
|
-
predefined_attributes[name.to_sym] = attributes
|
62
|
+
self.predefined_attributes[name.to_sym] = attributes
|
34
63
|
|
35
64
|
class_eval %{
|
36
65
|
class << self
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'yard'
|
2
|
+
|
3
|
+
module YARD
|
4
|
+
module Handlers
|
5
|
+
module Ruby
|
6
|
+
module Legacy
|
7
|
+
class PredefineHandler < Base
|
8
|
+
|
9
|
+
handles /\Apredefine\s/
|
10
|
+
|
11
|
+
def process
|
12
|
+
nobj = namespace
|
13
|
+
name = statement.tokens[2,1].to_s[1..-1]
|
14
|
+
|
15
|
+
register MethodObject.new(nobj, name, :class) do |o|
|
16
|
+
o.visibility = :public
|
17
|
+
o.source = statement.source
|
18
|
+
o.signature = "def #{nobj}.#{name}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'dm-predefined/yard/handlers/ruby/legacy/predefine_handler'
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'yard'
|
2
|
+
|
3
|
+
module YARD
|
4
|
+
module Handlers
|
5
|
+
module Ruby
|
6
|
+
class PredefineHandler < Base
|
7
|
+
|
8
|
+
handles method_call(:predefine)
|
9
|
+
|
10
|
+
def process
|
11
|
+
nobj = namespace
|
12
|
+
name = if statement.type == :predefine
|
13
|
+
statement.jump(:ident, :op, :kw, :const).source
|
14
|
+
elsif statement.call?
|
15
|
+
obj = statement.parameters(false).first
|
16
|
+
|
17
|
+
case obj.type
|
18
|
+
when :symbol_literal
|
19
|
+
obj.jump(:ident, :op, :kw, :const).source
|
20
|
+
when :string_literal
|
21
|
+
obj.jump(:string_content).source
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
register MethodObject.new(nobj, name, :class) do |o|
|
26
|
+
o.visibility = :public
|
27
|
+
o.source = statement.source
|
28
|
+
o.signature = "def #{nobj}.#{name}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'dm-predefined/yard/handlers/ruby'
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'dm-predefined/yard/handlers'
|
data/lib/dm-predefined.rb
CHANGED
@@ -3,6 +3,9 @@ class TestModel
|
|
3
3
|
include DataMapper::Resource
|
4
4
|
include DataMapper::Predefined
|
5
5
|
|
6
|
+
# Primary key of the test model
|
7
|
+
property :id, Serial
|
8
|
+
|
6
9
|
# Name property to test String values
|
7
10
|
property :name, String
|
8
11
|
|
@@ -15,11 +18,11 @@ class TestModel
|
|
15
18
|
# Body property to test Text values
|
16
19
|
property :body, Text
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
21
|
+
predefine :test1, :name => 'test1',
|
22
|
+
:number => 1,
|
23
|
+
:optional => 'yo',
|
24
|
+
:body => %{This is a test.}
|
22
25
|
|
23
|
-
|
26
|
+
predefine :test2, :name => 'test2', :number => 2
|
24
27
|
|
25
28
|
end
|
data/spec/spec_helper.rb
CHANGED
data.tar.gz.sig
ADDED
Binary file
|
metadata
CHANGED
@@ -1,17 +1,48 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dm-predefined
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Postmodern
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDQDCCAiigAwIBAgIBADANBgkqhkiG9w0BAQUFADBGMRgwFgYDVQQDDA9wb3N0
|
14
|
+
bW9kZXJuLm1vZDMxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixk
|
15
|
+
ARkWA2NvbTAeFw0wOTA2MDMwNDU5MDNaFw0xMDA2MDMwNDU5MDNaMEYxGDAWBgNV
|
16
|
+
BAMMD3Bvc3Rtb2Rlcm4ubW9kMzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYK
|
17
|
+
CZImiZPyLGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
|
18
|
+
1wvANkTDHFgVih5XLjuTwTZjgBq1lBGybXJiH6Id1lY2JOMqM5FB1DDHVvvij94i
|
19
|
+
mJabN0zkzu6VKWC70y0IwOxY7CPokr0eFdK/D0y7mCq1P8QITv76i2YqAl0eYqIt
|
20
|
+
W+IhIkANQ7E6uMZIZcdnfadC6lPAtlKkqtd9crvRbFgr6e3kyflmohbRnTEJHoRd
|
21
|
+
7SHHsybE6DSn7oTDs6XBTNrNIn5VfZA0z01eeos/+zBm1zKJOK2+/7xtLLDuDU9G
|
22
|
+
+Rd+ltUBbvxUrMNZmDG29pnmN2xTRH+Q8HxD2AxlvM5SRpK6OeZaHV7PaCCAVZ4L
|
23
|
+
T9BFl1sfMvRlABeGEkSyuQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
24
|
+
sDAdBgNVHQ4EFgQUKwsd+PqEYmBvyaTyoL+uRuk+PhEwDQYJKoZIhvcNAQEFBQAD
|
25
|
+
ggEBAB4TvHsrlbcXcKg6gX5BIb9tI+zGkpzo0Z7jnxMEcNO7NGGwmzafDBI/xZYv
|
26
|
+
xkRH3/HXbGGYDOi6Q6gWt5GujSx0bOImDtYTJTH8jnzN92HzEK5WdScm1QpZKF1e
|
27
|
+
cezArMbxbSPaosxTCtG6LQTkE28lFQsmFZ5xzouugS4h5+LVJiVMmiP+l3EfkjFa
|
28
|
+
GOURU+rNEMPWo8MCWivGW7jes6BMzWHcW7DQ0scNVmIcCIgdyMmpscuAEOSeghy9
|
29
|
+
/fFs57Ey2OXBL55nDOyvN/ZQ2Vab05UH4t+GCxjAPeirzL/29FBtePT6VD44c38j
|
30
|
+
pDj+ws7QjtH/Qcrr1l9jfN0ehDs=
|
31
|
+
-----END CERTIFICATE-----
|
11
32
|
|
12
|
-
date: 2009-
|
33
|
+
date: 2009-09-25 00:00:00 -07:00
|
13
34
|
default_executable:
|
14
35
|
dependencies:
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: yard
|
38
|
+
type: :runtime
|
39
|
+
version_requirement:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ">="
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 0.2.3.5
|
45
|
+
version:
|
15
46
|
- !ruby/object:Gem::Dependency
|
16
47
|
name: dm-core
|
17
48
|
type: :runtime
|
@@ -20,7 +51,17 @@ dependencies:
|
|
20
51
|
requirements:
|
21
52
|
- - ">="
|
22
53
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.
|
54
|
+
version: 0.10.0
|
55
|
+
version:
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: rspec
|
58
|
+
type: :development
|
59
|
+
version_requirement:
|
60
|
+
version_requirements: !ruby/object:Gem::Requirement
|
61
|
+
requirements:
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 1.2.8
|
24
65
|
version:
|
25
66
|
- !ruby/object:Gem::Dependency
|
26
67
|
name: hoe
|
@@ -30,7 +71,7 @@ dependencies:
|
|
30
71
|
requirements:
|
31
72
|
- - ">="
|
32
73
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
74
|
+
version: 2.3.3
|
34
75
|
version:
|
35
76
|
description: A DataMapper plugin for adding predefined resources to Models.
|
36
77
|
email:
|
@@ -53,14 +94,22 @@ files:
|
|
53
94
|
- Rakefile
|
54
95
|
- TODO.txt
|
55
96
|
- lib/dm-predefined.rb
|
97
|
+
- lib/dm-predefined/exceptions/unknown_resource.rb
|
56
98
|
- lib/dm-predefined/predefined.rb
|
57
99
|
- lib/dm-predefined/version.rb
|
58
|
-
- lib/dm-predefined/
|
59
|
-
-
|
100
|
+
- lib/dm-predefined/yard.rb
|
101
|
+
- lib/dm-predefined/yard/handlers.rb
|
102
|
+
- lib/dm-predefined/yard/handlers/ruby.rb
|
103
|
+
- lib/dm-predefined/yard/handlers/ruby/predefine_handler.rb
|
104
|
+
- lib/dm-predefined/yard/handlers/ruby/legacy.rb
|
105
|
+
- lib/dm-predefined/yard/handlers/ruby/legacy/predefine_handler.rb
|
106
|
+
- spec/integration/models/test_model.rb
|
60
107
|
- spec/integration/predefined_spec.rb
|
61
108
|
- spec/spec_helper.rb
|
62
|
-
has_rdoc:
|
109
|
+
has_rdoc: yard
|
63
110
|
homepage: http://dm-predefined.rubyforge.org/
|
111
|
+
licenses: []
|
112
|
+
|
64
113
|
post_install_message:
|
65
114
|
rdoc_options:
|
66
115
|
- --main
|
@@ -82,9 +131,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
82
131
|
requirements: []
|
83
132
|
|
84
133
|
rubyforge_project: dm-predefined
|
85
|
-
rubygems_version: 1.3.
|
134
|
+
rubygems_version: 1.3.5
|
86
135
|
signing_key:
|
87
|
-
specification_version:
|
136
|
+
specification_version: 3
|
88
137
|
summary: A DataMapper plugin for adding predefined resources to Models.
|
89
138
|
test_files: []
|
90
139
|
|
metadata.gz.sig
ADDED
Binary file
|