model_manage 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
data/lib/model_manage.rb CHANGED
@@ -1,8 +1,3 @@
1
- MongoidAsActiveRecord
2
- module Base
3
- end
4
- end
5
-
6
1
  require 'ostruct'
7
2
  require 'model_manage/mongoid'
8
3
  require 'model_manage/active_record'
@@ -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
@@ -17,7 +17,6 @@ module Mongoid
17
17
  base.class_eval do
18
18
  include ModelManage::Base
19
19
  include ModelManage::Mongoid
20
- include MongoidAsActiveRecord::Base
21
20
  end
22
21
  end
23
22
  end
@@ -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.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.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: &70308759037300 !ruby/object:Gem::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: *70308759037300
24
+ version_requirements: *70255537653860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mongoid
27
- requirement: &70308759036540 !ruby/object:Gem::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: *70308759036540
35
+ version_requirements: *70255537652840
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &70308759050860 !ruby/object:Gem::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: *70308759050860
46
+ version_requirements: *70255537652000
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: jeweler
49
- requirement: &70308759050180 !ruby/object:Gem::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: *70308759050180
57
+ version_requirements: *70255537650580
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rcov
60
- requirement: &70308759049120 !ruby/object:Gem::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: *70308759049120
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: 1739898690595293240
108
+ hash: 958104668298286808
107
109
  required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  none: false
109
111
  requirements: