model_manage 0.1.1 → 0.1.2
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/VERSION +1 -1
- data/lib/model_manage.rb +0 -5
- data/lib/model_manage/bitfield.rb +28 -0
- data/lib/model_manage/mongoid.rb +0 -1
- data/lib/model_manage/mongoid_as_active_record.rb +73 -0
- data/model_manage.gemspec +3 -1
- metadata +14 -12
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.2
|
data/lib/model_manage.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
module ModelManage
|
2
|
+
module Bitfield
|
3
|
+
def self.included(base)
|
4
|
+
def base.bitfield field, bits
|
5
|
+
all = (1 << bits.size) - 1
|
6
|
+
const_set "ALL_BITS", all
|
7
|
+
|
8
|
+
bits.each_with_index do |key, index|
|
9
|
+
mask = 1 << index
|
10
|
+
const_set "#{key}_BIT".upcase, mask
|
11
|
+
|
12
|
+
define_method "#{key}?" do
|
13
|
+
self[:status][index] != 0
|
14
|
+
end
|
15
|
+
|
16
|
+
define_method "#{key}=" do |bit|
|
17
|
+
case bit
|
18
|
+
when nil, false, 0
|
19
|
+
self[:status] &= all - mask
|
20
|
+
else
|
21
|
+
self[:status] |= mask
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/model_manage/mongoid.rb
CHANGED
@@ -0,0 +1,73 @@
|
|
1
|
+
if defined?(Mongoid::Document) && defined?(ActiveRecord::Base)
|
2
|
+
|
3
|
+
module ModelManage
|
4
|
+
module Mongoid
|
5
|
+
def self.included(base)
|
6
|
+
def base.inheritance_column
|
7
|
+
'_type'
|
8
|
+
end
|
9
|
+
|
10
|
+
def base.columns
|
11
|
+
forms.values
|
12
|
+
end
|
13
|
+
def base.columns_hash
|
14
|
+
forms
|
15
|
+
end
|
16
|
+
def base.descends_from_active_record?
|
17
|
+
Rails.child_models.member? self
|
18
|
+
end
|
19
|
+
def base.reflect_on_all_associations(macro = nil)
|
20
|
+
association_reflections = relations.values
|
21
|
+
macro ? relations.select { |reflection| reflection.macro == macro } : association_reflections
|
22
|
+
end
|
23
|
+
|
24
|
+
def base.base_class
|
25
|
+
class_of_active_record_descendant(self)
|
26
|
+
end
|
27
|
+
def base.class_of_active_record_descendant(klass)
|
28
|
+
if not Rails.models.member? klass.superclass
|
29
|
+
klass
|
30
|
+
else
|
31
|
+
class_of_active_record_descendant(klass.superclass)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
module Metadata
|
38
|
+
def options
|
39
|
+
form.data.merge(self)
|
40
|
+
end
|
41
|
+
def active_record
|
42
|
+
form.owner
|
43
|
+
end
|
44
|
+
def check_validity!
|
45
|
+
nil
|
46
|
+
end
|
47
|
+
def belongs_to?
|
48
|
+
[:referenced_in, :embedded_in].member? macro
|
49
|
+
end
|
50
|
+
def collection?
|
51
|
+
not belongs_to?
|
52
|
+
end
|
53
|
+
def through_reflection
|
54
|
+
active_record.relations[ form.options[:through].to_s ]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
class Mongoid::Relations::Metadata
|
60
|
+
include ModelManage::Mongoid::Metadata
|
61
|
+
end
|
62
|
+
|
63
|
+
module ActiveRecord
|
64
|
+
class Base
|
65
|
+
def self.descendants
|
66
|
+
Rails.models
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
end
|
72
|
+
|
73
|
+
|
data/model_manage.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "model_manage"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["\u{306a}\u{306a}\u{3053}\u{308d}\u{3073}"]
|
@@ -26,7 +26,9 @@ Gem::Specification.new do |s|
|
|
26
26
|
"lib/model_manage.rb",
|
27
27
|
"lib/model_manage/active_record.rb",
|
28
28
|
"lib/model_manage/base.rb",
|
29
|
+
"lib/model_manage/bitfield.rb",
|
29
30
|
"lib/model_manage/mongoid.rb",
|
31
|
+
"lib/model_manage/mongoid_as_active_record.rb",
|
30
32
|
"lib/model_manage/rails.rb",
|
31
33
|
"model_manage.gemspec",
|
32
34
|
"test/helper.rb",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: model_manage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2011-12-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: simple_form
|
16
|
-
requirement: &
|
16
|
+
requirement: &70255537653860 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70255537653860
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: mongoid
|
27
|
-
requirement: &
|
27
|
+
requirement: &70255537652840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70255537652840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &70255537652000 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: 1.0.0
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70255537652000
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: jeweler
|
49
|
-
requirement: &
|
49
|
+
requirement: &70255537650580 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 1.6.4
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70255537650580
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: rcov
|
60
|
-
requirement: &
|
60
|
+
requirement: &70255537649800 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,7 +65,7 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70255537649800
|
69
69
|
description: モデル、フィールドといった情報へ簡単アクセスすることを目的に開発しています。
|
70
70
|
email: 7korobi@gmail.com
|
71
71
|
executables: []
|
@@ -83,7 +83,9 @@ files:
|
|
83
83
|
- lib/model_manage.rb
|
84
84
|
- lib/model_manage/active_record.rb
|
85
85
|
- lib/model_manage/base.rb
|
86
|
+
- lib/model_manage/bitfield.rb
|
86
87
|
- lib/model_manage/mongoid.rb
|
88
|
+
- lib/model_manage/mongoid_as_active_record.rb
|
87
89
|
- lib/model_manage/rails.rb
|
88
90
|
- model_manage.gemspec
|
89
91
|
- test/helper.rb
|
@@ -103,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
103
105
|
version: '0'
|
104
106
|
segments:
|
105
107
|
- 0
|
106
|
-
hash:
|
108
|
+
hash: 958104668298286808
|
107
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
110
|
none: false
|
109
111
|
requirements:
|