hydra_attribute 0.2.0 → 0.3.0.beta1
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/README.md +74 -68
- data/cucumber.yml +1 -0
- data/features/attributes/create.feature +22 -0
- data/features/attributes/destroy.feature +18 -0
- data/features/attributes/update.feature +19 -0
- data/features/create.feature +47 -0
- data/features/define.feature +33 -0
- data/features/query_methods/group.feature +13 -14
- data/features/query_methods/order.feature +63 -52
- data/features/query_methods/select.feature +36 -37
- data/features/query_methods/where.feature +36 -38
- data/features/step_definitions/model_steps.rb +23 -19
- data/features/step_definitions/query_methods.rb +6 -2
- data/features/step_definitions/record_steps.rb +28 -10
- data/features/support/env.rb +12 -6
- data/features/support/schema.rb +62 -35
- data/features/support/world.rb +14 -5
- data/features/update.feature +114 -0
- data/gemfiles/3.1.gemfile.lock +10 -10
- data/gemfiles/3.2.gemfile.lock +10 -10
- data/lib/hydra_attribute/active_record/association.rb +77 -0
- data/lib/hydra_attribute/active_record/association_preloader.rb +82 -0
- data/lib/hydra_attribute/active_record/attribute_methods.rb +145 -37
- data/lib/hydra_attribute/active_record/migration.rb +21 -0
- data/lib/hydra_attribute/active_record/reflection.rb +16 -0
- data/lib/hydra_attribute/active_record/relation/query_methods.rb +73 -71
- data/lib/hydra_attribute/active_record/relation.rb +1 -24
- data/lib/hydra_attribute/active_record.rb +16 -2
- data/lib/hydra_attribute/association_builder.rb +44 -20
- data/lib/hydra_attribute/builder.rb +15 -13
- data/lib/hydra_attribute/configuration.rb +9 -30
- data/lib/hydra_attribute/entity_callbacks.rb +46 -0
- data/lib/hydra_attribute/hydra_attribute.rb +27 -0
- data/lib/hydra_attribute/migrator.rb +106 -0
- data/lib/hydra_attribute/railtie.rb +2 -0
- data/lib/hydra_attribute/version.rb +2 -2
- data/lib/hydra_attribute.rb +8 -6
- data/lib/rails/generators/hydra_attribute/install/templates/hydra_attribute.txt +4 -0
- data/spec/spec_helper.rb +1 -2
- metadata +42 -60
- data/features/attribute_methods.feature +0 -146
- data/features/define_attributes.feature +0 -56
- data/features/load_associations.feature +0 -40
- data/features/step_definitions/class_steps.rb +0 -32
- data/features/typecast_attributes.feature +0 -24
- data/lib/generators/hydra_attribute/install/templates/hydra_attribute.txt +0 -11
- data/lib/hydra_attribute/active_record/attribute_methods/before_type_cast.rb +0 -16
- data/lib/hydra_attribute/active_record/attribute_methods/read.rb +0 -13
- data/lib/hydra_attribute/attribute_builder.rb +0 -57
- data/lib/hydra_attribute/attribute_proxy.rb +0 -16
- data/lib/hydra_attribute/migration.rb +0 -27
- data/spec/hydra_attribute/active_record/relation/query_methods_spec.rb +0 -334
- data/spec/hydra_attribute/active_record/relation_spec.rb +0 -67
- data/spec/hydra_attribute/active_record/scoping_spec.rb +0 -23
- data/spec/hydra_attribute/active_record_spec.rb +0 -18
- data/spec/hydra_attribute/association_builder_spec.rb +0 -95
- data/spec/hydra_attribute/attribute_builder_spec.rb +0 -70
- data/spec/hydra_attribute/attribute_helpers_spec.rb +0 -70
- data/spec/hydra_attribute/builder_spec.rb +0 -39
- data/spec/hydra_attribute/configuration_spec.rb +0 -65
- data/spec/hydra_attribute_spec.rb +0 -20
- /data/lib/{generators → rails/generators}/hydra_attribute/install/USAGE +0 -0
- /data/lib/{generators → rails/generators}/hydra_attribute/install/install_generator.rb +0 -0
@@ -1,40 +1,64 @@
|
|
1
1
|
module HydraAttribute
|
2
2
|
class AssociationBuilder
|
3
|
+
attr_reader :klass, :type
|
3
4
|
|
4
5
|
def initialize(klass, type)
|
5
6
|
@klass, @type = klass, type
|
6
7
|
end
|
7
8
|
|
9
|
+
class << self
|
10
|
+
def build(klass, type)
|
11
|
+
new(klass, type).build
|
12
|
+
end
|
13
|
+
|
14
|
+
def model_name(klass, type)
|
15
|
+
"Hydra#{type.to_s.capitalize}#{klass.model_name}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def class_name(klass, type)
|
19
|
+
"::HydraAttribute::#{model_name(klass, type)}"
|
20
|
+
end
|
21
|
+
|
22
|
+
def table_name(klass, type)
|
23
|
+
"hydra_#{type}_#{klass.table_name}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def association_name(type)
|
27
|
+
"hydra_#{type}_values".to_sym
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
8
31
|
def build
|
9
|
-
|
10
|
-
|
32
|
+
create_value_model
|
33
|
+
add_association
|
34
|
+
end
|
35
|
+
|
36
|
+
def create_value_model
|
37
|
+
value_model = ::HydraAttribute.const_set(model_name, Class.new(::ActiveRecord::Base))
|
38
|
+
value_model.table_name = table_name
|
39
|
+
value_model.belongs_to :entity, class_name: klass.model_name, autosave: false
|
40
|
+
value_model.belongs_to :hydra_attribute, class_name: 'HydraAttribute::HydraAttribute'
|
41
|
+
value_model.attr_accessible :hydra_attribute_id, :value
|
11
42
|
end
|
12
43
|
|
13
|
-
|
44
|
+
def add_association
|
45
|
+
klass.has_many association_name, class_name: class_name, foreign_key: :entity_id, autosave: false
|
46
|
+
end
|
14
47
|
|
15
|
-
def
|
16
|
-
|
17
|
-
unless namespace.const_defined?(const)
|
18
|
-
klass = namespace.const_set(const, Class.new(::ActiveRecord::Base))
|
19
|
-
klass.table_name = config.table_name(@type)
|
20
|
-
klass.attr_accessible :name, :value
|
21
|
-
klass.belongs_to :entity, polymorphic: true, touch: true, autosave: true
|
22
|
-
end
|
48
|
+
def model_name
|
49
|
+
self.class.model_name(klass, type)
|
23
50
|
end
|
24
51
|
|
25
|
-
def
|
26
|
-
|
27
|
-
unless @klass.reflect_on_association(assoc)
|
28
|
-
@klass.has_many assoc, as: :entity, class_name: config.associated_model_name(@type), autosave: true, dependent: :delete_all
|
29
|
-
end
|
52
|
+
def class_name
|
53
|
+
self.class.class_name(klass, type)
|
30
54
|
end
|
31
55
|
|
32
|
-
def
|
33
|
-
|
56
|
+
def table_name
|
57
|
+
self.class.table_name(klass, type)
|
34
58
|
end
|
35
59
|
|
36
|
-
def
|
37
|
-
|
60
|
+
def association_name
|
61
|
+
self.class.association_name(type)
|
38
62
|
end
|
39
63
|
end
|
40
64
|
end
|
@@ -3,23 +3,25 @@ module HydraAttribute
|
|
3
3
|
attr_reader :klass
|
4
4
|
|
5
5
|
def initialize(klass)
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
[
|
7
|
+
ActiveRecord::Scoping,
|
8
|
+
ActiveRecord::AttributeMethods,
|
9
|
+
EntityCallbacks
|
10
|
+
].each do |m|
|
11
|
+
klass.send :include, m
|
10
12
|
end
|
13
|
+
|
14
|
+
@klass = klass
|
11
15
|
end
|
12
16
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
AssociationBuilder.new(klass, :#{type}).build
|
17
|
+
def self.build(klass)
|
18
|
+
new(klass).build
|
19
|
+
end
|
17
20
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
EOS
|
21
|
+
def build
|
22
|
+
SUPPORT_TYPES.each do |type|
|
23
|
+
AssociationBuilder.build(klass, type)
|
24
|
+
end
|
23
25
|
end
|
24
26
|
end
|
25
27
|
end
|
@@ -3,37 +3,16 @@ module HydraAttribute
|
|
3
3
|
def self.add_setting(name, default_value)
|
4
4
|
attr_writer name
|
5
5
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
6
|
+
class_eval <<-EOS, __FILE__, __LINE__ + 1
|
7
|
+
def #{name}
|
8
|
+
@#{name} = #{default_value} unless defined?(@#{name})
|
9
|
+
@#{name}
|
10
|
+
end
|
10
11
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
add_setting :table_prefix, 'hydra_'
|
17
|
-
add_setting :association_prefix, 'hydra_'
|
18
|
-
add_setting :use_module_for_associated_models, true
|
19
|
-
|
20
|
-
def table_name(type)
|
21
|
-
"#{table_prefix}#{type}_attributes".to_sym
|
22
|
-
end
|
23
|
-
|
24
|
-
def association(type)
|
25
|
-
"#{association_prefix}#{type}_attributes".to_sym
|
26
|
-
end
|
27
|
-
|
28
|
-
# Return string for compatibility with ActiveRecord 3.1.x
|
29
|
-
def associated_model_name(type)
|
30
|
-
klass = associated_const_name(type).to_s
|
31
|
-
klass = "HydraAttribute::#{klass}" if use_module_for_associated_models?
|
32
|
-
klass
|
33
|
-
end
|
34
|
-
|
35
|
-
def associated_const_name(type)
|
36
|
-
"#{type.to_s.titlecase}Attribute".to_sym
|
12
|
+
def #{name}?
|
13
|
+
#{name}.present?
|
14
|
+
end
|
15
|
+
EOS
|
37
16
|
end
|
38
17
|
end
|
39
18
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module HydraAttribute
|
2
|
+
module EntityCallbacks
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
after_create :create_hydra_values
|
7
|
+
after_update :update_hydra_values
|
8
|
+
before_destroy :destroy_hydra_values
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def create_hydra_values
|
14
|
+
created = false
|
15
|
+
each_hydra_value_model do |model|
|
16
|
+
model.entity_id = id
|
17
|
+
model.save
|
18
|
+
created = true
|
19
|
+
end
|
20
|
+
touch if created
|
21
|
+
end
|
22
|
+
|
23
|
+
def update_hydra_values
|
24
|
+
updated = false
|
25
|
+
each_hydra_value_model do |model|
|
26
|
+
if model.changed?
|
27
|
+
updated = true
|
28
|
+
model.save
|
29
|
+
end
|
30
|
+
end
|
31
|
+
touch if updated
|
32
|
+
end
|
33
|
+
|
34
|
+
def destroy_hydra_values
|
35
|
+
self.class.hydra_attribute_backend_types.each do |type|
|
36
|
+
AssociationBuilder.class_name(self.class, type).constantize.where(entity_id: id).delete_all
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def each_hydra_value_model(&block)
|
41
|
+
self.class.hydra_attribute_backend_types.each do |type|
|
42
|
+
association(AssociationBuilder.association_name(type)).all_models.each(&block)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'active_support/core_ext/object/with_options'
|
2
|
+
|
3
|
+
module HydraAttribute
|
4
|
+
class HydraAttribute < ActiveRecord::Base
|
5
|
+
self.table_name = 'hydra_attributes'
|
6
|
+
|
7
|
+
with_options presence: true do |klass|
|
8
|
+
klass.validates :entity_type, inclusion: { in: lambda { |attr| [(attr.entity_type.constantize.name rescue nil)] } }
|
9
|
+
klass.validates :name, uniqueness: { scope: :entity_type }
|
10
|
+
klass.validates :backend_type, inclusion: SUPPORT_TYPES
|
11
|
+
end
|
12
|
+
|
13
|
+
before_destroy :delete_dependent_values
|
14
|
+
after_commit :reload_entity_attributes
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def delete_dependent_values
|
19
|
+
value_class = AssociationBuilder.class_name(entity_type.constantize, backend_type).constantize
|
20
|
+
value_class.delete_all(hydra_attribute_id: id)
|
21
|
+
end
|
22
|
+
|
23
|
+
def reload_entity_attributes
|
24
|
+
entity_type.constantize.reset_hydra_attribute_methods
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module HydraAttribute
|
2
|
+
class Migrator
|
3
|
+
|
4
|
+
def initialize(migration)
|
5
|
+
@migration = migration
|
6
|
+
end
|
7
|
+
|
8
|
+
class << self
|
9
|
+
%w(create remove migrate rollback).each do |method|
|
10
|
+
class_eval <<-EOS, __FILE__, __LINE__ + 1
|
11
|
+
def #{method}(migration, *args, &block)
|
12
|
+
new(migration).#{method}(*args, &block)
|
13
|
+
end
|
14
|
+
EOS
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def create(name, options = {}, &block)
|
19
|
+
create_entity(name, options, &block)
|
20
|
+
create_attribute unless attribute_exists?
|
21
|
+
create_values(name)
|
22
|
+
end
|
23
|
+
|
24
|
+
def drop(name)
|
25
|
+
drop_values(name)
|
26
|
+
drop_attributes unless values_exists?
|
27
|
+
drop_entity(name)
|
28
|
+
end
|
29
|
+
|
30
|
+
def migrate(name)
|
31
|
+
create_attribute unless attribute_exists?
|
32
|
+
create_values(name)
|
33
|
+
end
|
34
|
+
|
35
|
+
def rollback(name)
|
36
|
+
drop_values(name)
|
37
|
+
drop_attribute unless values_exists?
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def create_entity(name, options = {})
|
43
|
+
create_table name, options do |t|
|
44
|
+
yield t if block_given?
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def create_attribute
|
49
|
+
create_table :hydra_attributes do |t|
|
50
|
+
t.string :entity_type, limit: 32, null: false
|
51
|
+
t.string :name, limit: 32, null: false
|
52
|
+
t.string :backend_type, limit: 16, null: false
|
53
|
+
t.string :default_value
|
54
|
+
t.timestamps
|
55
|
+
end
|
56
|
+
add_index :hydra_attributes, [:entity_type, :name], unique: true, name: 'hydra_attributes_index'
|
57
|
+
end
|
58
|
+
|
59
|
+
def create_values(name)
|
60
|
+
SUPPORT_TYPES.each do |type|
|
61
|
+
table_name = value_table(name, type)
|
62
|
+
create_table table_name do |t|
|
63
|
+
t.integer :entity_id, null: false
|
64
|
+
t.integer :hydra_attribute_id, null: false
|
65
|
+
t.send type, :value
|
66
|
+
t.timestamps
|
67
|
+
end
|
68
|
+
add_index table_name, [:entity_id, :hydra_attribute_id], unique: true, name: "#{table_name}_index"
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def drop_entity(name)
|
73
|
+
drop_table(name)
|
74
|
+
end
|
75
|
+
|
76
|
+
def drop_attribute
|
77
|
+
drop_table(:hydra_attributes)
|
78
|
+
end
|
79
|
+
|
80
|
+
def drop_values(name)
|
81
|
+
SUPPORT_TYPES.each do |type|
|
82
|
+
drop_table(value_table(name, type))
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def value_table(name, type)
|
87
|
+
"hydra_#{type}_#{name}"
|
88
|
+
end
|
89
|
+
|
90
|
+
def attribute_exists?
|
91
|
+
table_exists?(:hydra_attributes)
|
92
|
+
end
|
93
|
+
|
94
|
+
def values_exists?
|
95
|
+
tables.any? do |table|
|
96
|
+
SUPPORT_TYPES.any? do |type|
|
97
|
+
table.start_with?("hydra_#{type}_")
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
def method_missing(symbol, *args, &block)
|
103
|
+
@migration.send(symbol, *args, &block)
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
@@ -1,3 +1,3 @@
|
|
1
1
|
module HydraAttribute
|
2
|
-
VERSION = '0.
|
3
|
-
end
|
2
|
+
VERSION = '0.3.0.beta1'
|
3
|
+
end
|
data/lib/hydra_attribute.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module HydraAttribute
|
2
|
-
SUPPORT_TYPES =
|
2
|
+
SUPPORT_TYPES = %w(string text integer float boolean datetime).freeze
|
3
3
|
|
4
4
|
class << self
|
5
5
|
def config
|
@@ -16,16 +16,18 @@ end
|
|
16
16
|
require 'hydra_attribute/version'
|
17
17
|
require 'hydra_attribute/configuration'
|
18
18
|
require 'hydra_attribute/association_builder'
|
19
|
-
require 'hydra_attribute/attribute_builder'
|
20
19
|
require 'hydra_attribute/builder'
|
21
|
-
require 'hydra_attribute/
|
22
|
-
require 'hydra_attribute/
|
20
|
+
require 'hydra_attribute/migrator'
|
21
|
+
require 'hydra_attribute/hydra_attribute'
|
22
|
+
require 'hydra_attribute/entity_callbacks'
|
23
23
|
require 'hydra_attribute/active_record'
|
24
24
|
require 'hydra_attribute/active_record/scoping'
|
25
|
+
require 'hydra_attribute/active_record/reflection'
|
26
|
+
require 'hydra_attribute/active_record/association'
|
27
|
+
require 'hydra_attribute/active_record/association_preloader'
|
28
|
+
require 'hydra_attribute/active_record/migration'
|
25
29
|
require 'hydra_attribute/active_record/relation'
|
26
30
|
require 'hydra_attribute/active_record/relation/query_methods'
|
27
31
|
require 'hydra_attribute/active_record/attribute_methods'
|
28
|
-
require 'hydra_attribute/active_record/attribute_methods/read'
|
29
|
-
require 'hydra_attribute/active_record/attribute_methods/before_type_cast'
|
30
32
|
|
31
33
|
require 'hydra_attribute/railtie' if defined?(Rails)
|
data/spec/spec_helper.rb
CHANGED
@@ -7,11 +7,10 @@ ActiveRecord::Base.extend(HydraAttribute::ActiveRecord)
|
|
7
7
|
require 'database_cleaner'
|
8
8
|
RSpec.configure do |config|
|
9
9
|
config.before do
|
10
|
-
HydraAttribute.instance_variable_set(:@config, nil)
|
11
10
|
DatabaseCleaner.start
|
12
11
|
end
|
13
12
|
|
14
13
|
config.after do
|
15
14
|
DatabaseCleaner.clean
|
16
15
|
end
|
17
|
-
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydra_attribute
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.0.beta1
|
5
|
+
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Kostyantyn Stepanyuk
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-07-25 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152234260 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.1.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152234260
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152233160 !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: *2152233160
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: cucumber
|
38
|
-
requirement: &
|
38
|
+
requirement: &2152232280 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2152232280
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: sqlite3
|
49
|
-
requirement: &
|
49
|
+
requirement: &2152231480 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2152231480
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: database_cleaner
|
60
|
-
requirement: &
|
60
|
+
requirement: &2152230780 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *2152230780
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: appraisal
|
71
|
-
requirement: &
|
71
|
+
requirement: &2152229960 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *2152229960
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: rake
|
82
|
-
requirement: &
|
82
|
+
requirement: &2152229020 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *2152229020
|
91
91
|
description: hydra_attribute is an implementation of EAV pattern for ActiveRecord
|
92
92
|
models.
|
93
93
|
email: kostya.stepanyuk@gmail.com
|
@@ -104,55 +104,49 @@ files:
|
|
104
104
|
- LICENSE
|
105
105
|
- README.md
|
106
106
|
- Rakefile
|
107
|
-
-
|
108
|
-
- features/
|
109
|
-
- features/
|
107
|
+
- cucumber.yml
|
108
|
+
- features/attributes/create.feature
|
109
|
+
- features/attributes/destroy.feature
|
110
|
+
- features/attributes/update.feature
|
111
|
+
- features/create.feature
|
112
|
+
- features/define.feature
|
110
113
|
- features/query_methods/group.feature
|
111
114
|
- features/query_methods/order.feature
|
112
115
|
- features/query_methods/select.feature
|
113
116
|
- features/query_methods/where.feature
|
114
|
-
- features/step_definitions/class_steps.rb
|
115
117
|
- features/step_definitions/model_steps.rb
|
116
118
|
- features/step_definitions/query_methods.rb
|
117
119
|
- features/step_definitions/record_steps.rb
|
118
120
|
- features/support/env.rb
|
119
121
|
- features/support/schema.rb
|
120
122
|
- features/support/world.rb
|
121
|
-
- features/
|
123
|
+
- features/update.feature
|
122
124
|
- gemfiles/3.1.gemfile
|
123
125
|
- gemfiles/3.1.gemfile.lock
|
124
126
|
- gemfiles/3.2.gemfile
|
125
127
|
- gemfiles/3.2.gemfile.lock
|
126
128
|
- hydra_attribute.gemspec
|
127
|
-
- lib/generators/hydra_attribute/install/USAGE
|
128
|
-
- lib/generators/hydra_attribute/install/install_generator.rb
|
129
|
-
- lib/generators/hydra_attribute/install/templates/hydra_attribute.txt
|
130
129
|
- lib/hydra_attribute.rb
|
131
130
|
- lib/hydra_attribute/active_record.rb
|
131
|
+
- lib/hydra_attribute/active_record/association.rb
|
132
|
+
- lib/hydra_attribute/active_record/association_preloader.rb
|
132
133
|
- lib/hydra_attribute/active_record/attribute_methods.rb
|
133
|
-
- lib/hydra_attribute/active_record/
|
134
|
-
- lib/hydra_attribute/active_record/
|
134
|
+
- lib/hydra_attribute/active_record/migration.rb
|
135
|
+
- lib/hydra_attribute/active_record/reflection.rb
|
135
136
|
- lib/hydra_attribute/active_record/relation.rb
|
136
137
|
- lib/hydra_attribute/active_record/relation/query_methods.rb
|
137
138
|
- lib/hydra_attribute/active_record/scoping.rb
|
138
139
|
- lib/hydra_attribute/association_builder.rb
|
139
|
-
- lib/hydra_attribute/attribute_builder.rb
|
140
|
-
- lib/hydra_attribute/attribute_proxy.rb
|
141
140
|
- lib/hydra_attribute/builder.rb
|
142
141
|
- lib/hydra_attribute/configuration.rb
|
143
|
-
- lib/hydra_attribute/
|
142
|
+
- lib/hydra_attribute/entity_callbacks.rb
|
143
|
+
- lib/hydra_attribute/hydra_attribute.rb
|
144
|
+
- lib/hydra_attribute/migrator.rb
|
144
145
|
- lib/hydra_attribute/railtie.rb
|
145
146
|
- lib/hydra_attribute/version.rb
|
146
|
-
-
|
147
|
-
-
|
148
|
-
-
|
149
|
-
- spec/hydra_attribute/active_record_spec.rb
|
150
|
-
- spec/hydra_attribute/association_builder_spec.rb
|
151
|
-
- spec/hydra_attribute/attribute_builder_spec.rb
|
152
|
-
- spec/hydra_attribute/attribute_helpers_spec.rb
|
153
|
-
- spec/hydra_attribute/builder_spec.rb
|
154
|
-
- spec/hydra_attribute/configuration_spec.rb
|
155
|
-
- spec/hydra_attribute_spec.rb
|
147
|
+
- lib/rails/generators/hydra_attribute/install/USAGE
|
148
|
+
- lib/rails/generators/hydra_attribute/install/install_generator.rb
|
149
|
+
- lib/rails/generators/hydra_attribute/install/templates/hydra_attribute.txt
|
156
150
|
- spec/spec_helper.rb
|
157
151
|
homepage: https://github.com/kostyantyn/hydra_attribute
|
158
152
|
licenses: []
|
@@ -169,12 +163,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
169
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
164
|
none: false
|
171
165
|
requirements:
|
172
|
-
- - ! '
|
166
|
+
- - ! '>'
|
173
167
|
- !ruby/object:Gem::Version
|
174
|
-
version:
|
175
|
-
segments:
|
176
|
-
- 0
|
177
|
-
hash: -33625434151420815
|
168
|
+
version: 1.3.1
|
178
169
|
requirements: []
|
179
170
|
rubyforge_project:
|
180
171
|
rubygems_version: 1.8.10
|
@@ -183,33 +174,24 @@ specification_version: 3
|
|
183
174
|
summary: hydra_attribute is an implementation of EAV pattern for ActiveRecord models.
|
184
175
|
test_files:
|
185
176
|
- Appraisals
|
186
|
-
- features/
|
187
|
-
- features/
|
188
|
-
- features/
|
177
|
+
- features/attributes/create.feature
|
178
|
+
- features/attributes/destroy.feature
|
179
|
+
- features/attributes/update.feature
|
180
|
+
- features/create.feature
|
181
|
+
- features/define.feature
|
189
182
|
- features/query_methods/group.feature
|
190
183
|
- features/query_methods/order.feature
|
191
184
|
- features/query_methods/select.feature
|
192
185
|
- features/query_methods/where.feature
|
193
|
-
- features/step_definitions/class_steps.rb
|
194
186
|
- features/step_definitions/model_steps.rb
|
195
187
|
- features/step_definitions/query_methods.rb
|
196
188
|
- features/step_definitions/record_steps.rb
|
197
189
|
- features/support/env.rb
|
198
190
|
- features/support/schema.rb
|
199
191
|
- features/support/world.rb
|
200
|
-
- features/
|
192
|
+
- features/update.feature
|
201
193
|
- gemfiles/3.1.gemfile
|
202
194
|
- gemfiles/3.1.gemfile.lock
|
203
195
|
- gemfiles/3.2.gemfile
|
204
196
|
- gemfiles/3.2.gemfile.lock
|
205
|
-
- spec/hydra_attribute/active_record/relation/query_methods_spec.rb
|
206
|
-
- spec/hydra_attribute/active_record/relation_spec.rb
|
207
|
-
- spec/hydra_attribute/active_record/scoping_spec.rb
|
208
|
-
- spec/hydra_attribute/active_record_spec.rb
|
209
|
-
- spec/hydra_attribute/association_builder_spec.rb
|
210
|
-
- spec/hydra_attribute/attribute_builder_spec.rb
|
211
|
-
- spec/hydra_attribute/attribute_helpers_spec.rb
|
212
|
-
- spec/hydra_attribute/builder_spec.rb
|
213
|
-
- spec/hydra_attribute/configuration_spec.rb
|
214
|
-
- spec/hydra_attribute_spec.rb
|
215
197
|
- spec/spec_helper.rb
|