r_kit 0.3.2 → 0.4.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.
- checksums.yaml +4 -4
- data/lib/r_kit/active_record_utility/active_record_extend.rb +18 -0
- data/lib/r_kit/active_record_utility/database_schema_error.rb +9 -0
- data/lib/r_kit/active_record_utility/utility/tag.rb +14 -0
- data/lib/r_kit/active_record_utility/utility.rb +53 -0
- data/lib/r_kit/active_record_utility.rb +15 -0
- data/lib/r_kit/backtrace/kernel_extend.rb +1 -1
- data/lib/r_kit/backtrace.rb +1 -1
- data/lib/r_kit/core/configurer.rb +3 -3
- data/lib/r_kit/core/engineer.rb +1 -1
- data/lib/r_kit/core/loader.rb +20 -12
- data/lib/r_kit/core.rb +13 -9
- data/lib/r_kit/css/lib/assets/stylesheets/r_kit/base/html.scss +9 -2
- data/lib/r_kit/css.rb +1 -1
- data/lib/r_kit/decorator/active_record_extend.rb +10 -5
- data/lib/r_kit/decorator/base.rb +11 -1
- data/lib/r_kit/decorator.rb +1 -1
- data/lib/r_kit/grid/base/grid_col.rb +1 -1
- data/lib/r_kit/grid/base.rb +3 -3
- data/lib/r_kit/grid/binding.rb +17 -8
- data/lib/r_kit/grid.rb +2 -2
- data/lib/r_kit/utility/array_extend.rb +7 -0
- data/lib/r_kit/utility/hash_extend.rb +8 -0
- data/lib/r_kit/utility/kernel_extend.rb +19 -0
- data/lib/r_kit/utility/symbol_extend.rb +3 -0
- data/lib/r_kit/utility.rb +16 -0
- data/lib/r_kit/version.rb +1 -1
- data/lib/r_kit.rb +11 -2
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d98f71dcaea265f716ff792fad147279f44b4287
|
4
|
+
data.tar.gz: 217d736a30a4f845b3d976b1c2c2ca1fbbb7df6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ecb5dd37f794116e6128d7376b8ede61fb06e6d1f4cb41aa4285d894581d472cf0655477108841299b37a936bd2eadcf001f08eb46b7eb104002b1ffe3e6782
|
7
|
+
data.tar.gz: f5da4ecd90a62e5256d531a2a5fad1b543478bfb7a0c8116c12624af626a19258ea773176df1ae401e61d081785ea21c5543c5cca2fbfc858b143f2e7d2e2a7f
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module RKit::ActiveRecordUtility::ActiveRecordExtend
|
2
|
+
|
3
|
+
RKit::ActiveRecordUtility::UTILITIES.each do |utility, method_name|
|
4
|
+
|
5
|
+
define_method method_name do
|
6
|
+
RKit::ActiveRecordUtility::Utility.const_get(utility.classify).new(self, method: __method__).interfere
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
def interfered? utility
|
12
|
+
RKit::ActiveRecordUtility::Utility.const_get(utility.classify).interfered? model_klass
|
13
|
+
rescue NameError
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
ActiveRecord::Base.extend self
|
18
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class DatabaseSchemaError < StandardError
|
2
|
+
def initialize base, method:;
|
3
|
+
super %Q{
|
4
|
+
WARNING - You tried to use the '#{ method }' DSL on '#{ base }',
|
5
|
+
You may want to create a 'tag' column first.
|
6
|
+
To do so, please refer to the 'RKit::ActiveRecordUtlity' documentation.
|
7
|
+
}
|
8
|
+
end
|
9
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class RKit::ActiveRecordUtility::Utility::Tag < RKit::ActiveRecordUtility::Utility
|
2
|
+
|
3
|
+
def can_interfere?
|
4
|
+
base.table_exists? && base.column_names.include?("tag")
|
5
|
+
end
|
6
|
+
|
7
|
+
def interfere!
|
8
|
+
base.validates_presence_of :tag
|
9
|
+
base.validates_uniqueness_of :tag
|
10
|
+
|
11
|
+
base.send :define_method, :to_param, ->{ tag }
|
12
|
+
base.send :define_singleton_method, :tagged, ->(tag){ find_by tag: tag }
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
class RKit::ActiveRecordUtility::Utility
|
2
|
+
|
3
|
+
attr_accessor :base, :method
|
4
|
+
|
5
|
+
def initialize base, method:;
|
6
|
+
@base = base
|
7
|
+
@method = method
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def interfere
|
12
|
+
if can_interfere?
|
13
|
+
interfere!
|
14
|
+
interfered!
|
15
|
+
else
|
16
|
+
raise DatabaseSchemaError.new(base, method: method) unless running_script? /^rake db:/
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
# TODO: private/protected ?
|
22
|
+
def can_interfere?
|
23
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
24
|
+
end
|
25
|
+
|
26
|
+
def interfere!
|
27
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
28
|
+
end
|
29
|
+
|
30
|
+
def interfered!
|
31
|
+
__class__.interfered base
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
module SingletonInheritance
|
36
|
+
def self.extended base
|
37
|
+
base.instance_variable_set :@extended, []
|
38
|
+
end
|
39
|
+
|
40
|
+
def interfered? base
|
41
|
+
@extended.include? base
|
42
|
+
end
|
43
|
+
|
44
|
+
def interfered base
|
45
|
+
@extended << base
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.inherited(subclass)
|
50
|
+
subclass.extend SingletonInheritance
|
51
|
+
super
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class RKit::ActiveRecordUtility
|
2
|
+
dependency :utilities
|
3
|
+
|
4
|
+
load_path __FILE__, 'active_record_extend.rb'
|
5
|
+
load_path __FILE__, 'database_schema_error.rb'
|
6
|
+
load_path __FILE__, 'utility.rb'
|
7
|
+
|
8
|
+
UTILITIES = {
|
9
|
+
tag: :acts_as_taggables,
|
10
|
+
}
|
11
|
+
|
12
|
+
UTILITIES.each do |utility, _|
|
13
|
+
load_path __FILE__, "utility/#{ utility }.rb"
|
14
|
+
end
|
15
|
+
end
|
data/lib/r_kit/backtrace.rb
CHANGED
@@ -19,7 +19,7 @@ class RKit::Core::Configurer
|
|
19
19
|
|
20
20
|
|
21
21
|
def config *name, default
|
22
|
-
_config.deep_merge! [*name, default].reverse.
|
22
|
+
_config.deep_merge! [*name, default].reverse.reduce{ |nested, key| Hash[key, nested] }
|
23
23
|
end
|
24
24
|
|
25
25
|
def load_config! config_options
|
@@ -33,7 +33,7 @@ class RKit::Core::Configurer
|
|
33
33
|
|
34
34
|
def alias *name, old_name
|
35
35
|
new_name = name.pop
|
36
|
-
config = name.
|
36
|
+
config = name.reduce(_config){ |config, nested| config = config[nested] }
|
37
37
|
|
38
38
|
config[new_name] = config[old_name] if config[new_name].blank?
|
39
39
|
end
|
@@ -47,7 +47,7 @@ class RKit::Core::Configurer
|
|
47
47
|
|
48
48
|
def load_public_accessor!
|
49
49
|
_base.const_set :CONFIG, OpenStruct.new(_config)
|
50
|
-
_base.define_singleton_method(
|
50
|
+
_base.define_singleton_method('config'){ self::CONFIG }
|
51
51
|
end
|
52
52
|
|
53
53
|
|
data/lib/r_kit/core/engineer.rb
CHANGED
data/lib/r_kit/core/loader.rb
CHANGED
@@ -3,6 +3,15 @@ class RKit::Core::Loader
|
|
3
3
|
|
4
4
|
@@loaded = []
|
5
5
|
|
6
|
+
def self.loaded
|
7
|
+
@@loaded.map{ |name| name.demodulize.underscore }
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.loaded? name
|
11
|
+
@@loaded.include? name
|
12
|
+
end
|
13
|
+
|
14
|
+
|
6
15
|
def initialize base
|
7
16
|
@_base = base
|
8
17
|
@load_paths = []
|
@@ -11,7 +20,7 @@ class RKit::Core::Loader
|
|
11
20
|
|
12
21
|
|
13
22
|
def dependency dependency
|
14
|
-
dependencies << Dependency.new(_base,
|
23
|
+
dependencies << Dependency.new(_base, service: dependency)
|
15
24
|
end
|
16
25
|
|
17
26
|
def dependencies!
|
@@ -32,7 +41,7 @@ class RKit::Core::Loader
|
|
32
41
|
|
33
42
|
|
34
43
|
def loaded!
|
35
|
-
@@loaded << _base.name
|
44
|
+
@@loaded << _base.name
|
36
45
|
end
|
37
46
|
|
38
47
|
|
@@ -102,26 +111,25 @@ class RKit::Core::Loader
|
|
102
111
|
end
|
103
112
|
|
104
113
|
|
105
|
-
class Dependency
|
106
|
-
attr_accessor :
|
107
|
-
|
108
|
-
def initialize base, str: ""
|
109
|
-
@_base = base
|
114
|
+
class Dependency
|
115
|
+
attr_accessor :base, :service
|
110
116
|
|
111
|
-
|
117
|
+
def initialize base, service:;
|
118
|
+
@base = base
|
119
|
+
@service = RKit.const_get(service.to_s.classify)
|
112
120
|
end
|
113
121
|
|
114
122
|
def should_load?
|
115
|
-
!RKit::Core::Loader.class_variable_get(:@@loaded).include?
|
123
|
+
!RKit::Core::Loader.class_variable_get(:@@loaded).include? @service.name
|
116
124
|
end
|
117
125
|
|
118
126
|
def dependency!
|
119
127
|
warn %Q{
|
120
|
-
WARNING -
|
121
|
-
As a dependency for #{
|
128
|
+
WARNING - #{ @service.name } was implicitly loaded,
|
129
|
+
As a dependency for #{ base }.
|
122
130
|
You may want to load it explicitly.
|
123
131
|
}
|
124
|
-
|
132
|
+
@service.load
|
125
133
|
end
|
126
134
|
|
127
135
|
def load!
|
data/lib/r_kit/core.rb
CHANGED
@@ -7,8 +7,8 @@ class RKit::Core
|
|
7
7
|
@_load = Loader.new self
|
8
8
|
end
|
9
9
|
|
10
|
-
def inherited
|
11
|
-
|
10
|
+
def inherited subclass
|
11
|
+
subclass.init!
|
12
12
|
super
|
13
13
|
end
|
14
14
|
|
@@ -31,16 +31,25 @@ class RKit::Core
|
|
31
31
|
to: :@_load
|
32
32
|
|
33
33
|
|
34
|
-
def
|
34
|
+
def loaded?
|
35
|
+
RKit::Core::Loader.loaded? name
|
36
|
+
end
|
37
|
+
|
38
|
+
def load! config
|
39
|
+
require "#{ name.underscore }.rb"
|
40
|
+
|
35
41
|
@_config.load! config
|
36
42
|
@_engine.load!
|
37
43
|
@_load.load!
|
38
44
|
end
|
39
45
|
|
46
|
+
def load config = {}
|
47
|
+
load! config if !loaded?
|
48
|
+
end
|
40
49
|
|
41
50
|
|
42
51
|
def inspect
|
43
|
-
"#{ name } config_w/#{ @_config.inspect }"
|
52
|
+
"#{ name } config_w/#{ @_config.inspect } loaded/#{ loaded? }"
|
44
53
|
# TODO: add link to doc
|
45
54
|
end
|
46
55
|
|
@@ -54,9 +63,4 @@ class RKit::Core
|
|
54
63
|
require 'r_kit/core/engineer.rb'
|
55
64
|
require 'r_kit/core/loader.rb'
|
56
65
|
|
57
|
-
require 'r_kit/backtrace.rb'
|
58
|
-
require 'r_kit/css.rb'
|
59
|
-
require 'r_kit/decorator.rb'
|
60
|
-
require 'r_kit/grid.rb'
|
61
|
-
|
62
66
|
end
|
@@ -1,5 +1,9 @@
|
|
1
|
+
html,
|
2
|
+
body{
|
3
|
+
height: 100%;
|
4
|
+
}
|
5
|
+
|
1
6
|
html{
|
2
|
-
min-height: 100%;
|
3
7
|
font: 16px "Helvetica Neue","Helvetica","Arial", sans-serif;
|
4
8
|
-webkit-transform: translateZ(0); /* using GPU for render - webkit only */
|
5
9
|
}
|
@@ -8,5 +12,8 @@ body{
|
|
8
12
|
background-color: background-color();
|
9
13
|
color: text-color();
|
10
14
|
|
11
|
-
|
15
|
+
padding-top: 1em;
|
16
|
+
margin: 0 {
|
17
|
+
top: -1em;
|
18
|
+
};
|
12
19
|
}
|
data/lib/r_kit/css.rb
CHANGED
@@ -6,7 +6,7 @@ module RKit::Decorator::ActiveRecordExtend
|
|
6
6
|
define_instance_methods
|
7
7
|
end
|
8
8
|
|
9
|
-
|
9
|
+
# TODO: all the methods below this comment should be private, even more, they should be in a "decorator_finder_creator_definer", and not included in active_record. SRP guys !
|
10
10
|
def define_decorator arg
|
11
11
|
@decorator_klass = decorator_klass_from arg
|
12
12
|
end
|
@@ -24,12 +24,17 @@ module RKit::Decorator::ActiveRecordExtend
|
|
24
24
|
if base <=> RKit::Decorator::Base
|
25
25
|
base
|
26
26
|
else
|
27
|
-
base.
|
27
|
+
base.tap do |base|
|
28
|
+
base.send :include, Module.new{ include refine(RKit::Decorator::Base){} }
|
29
|
+
base.extend Module.new{ include refine(RKit::Decorator::Base.singleton_class){} }
|
30
|
+
|
31
|
+
RKit::Decorator::Base.inherited base
|
32
|
+
end
|
28
33
|
end
|
29
34
|
end
|
30
35
|
|
31
36
|
def decorator_klass_from_module mod
|
32
|
-
namespace = (mod.name.deconstantize.presence ||
|
37
|
+
namespace = (mod.name.deconstantize.presence || 'Object').constantize
|
33
38
|
const_name = mod.name.demodulize
|
34
39
|
|
35
40
|
namespace.send :remove_const, const_name
|
@@ -37,7 +42,7 @@ module RKit::Decorator::ActiveRecordExtend
|
|
37
42
|
end
|
38
43
|
|
39
44
|
def decorator_klass_from_proc block
|
40
|
-
(name.deconstantize.presence ||
|
45
|
+
(name.deconstantize.presence || 'Object')
|
41
46
|
.constantize
|
42
47
|
.const_set "#{ name.demodulize }Decorator", Class.new(RKit::Decorator::Base, &block)
|
43
48
|
end
|
@@ -49,7 +54,7 @@ module RKit::Decorator::ActiveRecordExtend
|
|
49
54
|
|
50
55
|
|
51
56
|
def define_instance_methods
|
52
|
-
define_method
|
57
|
+
define_method 'decorate' do |view_context: nil|
|
53
58
|
self.class.decorator_klass.new self, view_context: view_context
|
54
59
|
end
|
55
60
|
end
|
data/lib/r_kit/decorator/base.rb
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
require 'delegate'
|
2
2
|
|
3
3
|
class RKit::Decorator::Base < SimpleDelegator
|
4
|
-
|
4
|
+
def self.decorator_name
|
5
|
+
name.demodulize.sub(/Decorator$/, '').underscore
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.inherited subclass
|
9
|
+
subclass.class_eval do
|
10
|
+
alias :"#{ decorator_name }" :__getobj__
|
11
|
+
end
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
5
15
|
|
6
16
|
def initialize obj, view_context: nil
|
7
17
|
@_view_context = view_context
|
data/lib/r_kit/decorator.rb
CHANGED
data/lib/r_kit/grid/base.rb
CHANGED
@@ -7,7 +7,7 @@ class RKit::Grid::Base
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def required_bindings
|
10
|
-
raise
|
10
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
11
11
|
end
|
12
12
|
|
13
13
|
|
@@ -16,7 +16,7 @@ class RKit::Grid::Base
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def _attributes
|
19
|
-
raise
|
19
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
20
20
|
end
|
21
21
|
|
22
22
|
|
@@ -38,7 +38,7 @@ class RKit::Grid::Base
|
|
38
38
|
|
39
39
|
|
40
40
|
def capture
|
41
|
-
raise
|
41
|
+
raise NotImplementedError, 'Subclasses must implement this method'
|
42
42
|
end
|
43
43
|
|
44
44
|
def to_s
|
data/lib/r_kit/grid/binding.rb
CHANGED
@@ -14,7 +14,7 @@ class RKit::Grid::Binding
|
|
14
14
|
|
15
15
|
def block= block
|
16
16
|
if block
|
17
|
-
@view_context = block.binding.eval(
|
17
|
+
@view_context = block.binding.eval('self')
|
18
18
|
@block = block
|
19
19
|
end
|
20
20
|
end
|
@@ -51,29 +51,38 @@ class RKit::Grid::Binding
|
|
51
51
|
end
|
52
52
|
|
53
53
|
|
54
|
+
# TODO: Allow to take only a proc (so not a hash)
|
55
|
+
# TODO: OR a single symbol (and we use that to send a method on the object)
|
56
|
+
# TODO: Tha last one can be replaced (or duplicated) by a "respond_to?" automatically triggered from here
|
54
57
|
def attributes= attributes
|
55
58
|
@attributes.merge!(attributes) do |key, old_value, new_value|
|
56
59
|
Array.wrap(old_value) + Array.wrap(new_value)
|
57
60
|
end
|
58
61
|
end
|
59
62
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
+
# TODO: @computed need to be back, we compute what can be, the procs or methods will be calc each time
|
64
|
+
def attributes object = nil
|
65
|
+
#@computed ||=
|
66
|
+
@attributes.each_with_object({}) do |(key, value), public_attributes|
|
67
|
+
public_attributes[process(key, object)] = process(value, object)
|
63
68
|
end
|
64
69
|
end
|
65
70
|
|
66
71
|
|
67
|
-
def process value
|
72
|
+
def process value, object = nil
|
68
73
|
case value
|
69
74
|
when Proc
|
70
|
-
|
75
|
+
proc_value = case value.arity
|
76
|
+
when 1 then value.call(object)
|
77
|
+
else value.call
|
78
|
+
end
|
79
|
+
process(proc_value, object)
|
71
80
|
when Array
|
72
|
-
value.map{ |unique_value| process(unique_value) }.join(
|
81
|
+
value.map{ |unique_value| process(unique_value, object) }.join(' ')
|
73
82
|
when String, Symbol
|
74
83
|
value.to_s.dasherize
|
75
84
|
else
|
76
|
-
raise ArgumentError,
|
85
|
+
raise ArgumentError, 'Must be Array, Proc or String/Symbol'
|
77
86
|
end
|
78
87
|
end
|
79
88
|
end
|
data/lib/r_kit/grid.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
class RKit::Grid
|
1
|
+
class RKit::Grid
|
2
2
|
|
3
3
|
with_engine __FILE__
|
4
4
|
with_sprockets __FILE__
|
@@ -18,7 +18,7 @@ class RKit::Grid < RKit::Core
|
|
18
18
|
alias_config :kernel_extend, :extends
|
19
19
|
|
20
20
|
|
21
|
-
config :base_width, [0.75, [
|
21
|
+
config :base_width, [0.75, ['rem']]
|
22
22
|
config :col_size, 3
|
23
23
|
|
24
24
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Kernel
|
2
|
+
|
3
|
+
def __class__
|
4
|
+
self.class
|
5
|
+
end
|
6
|
+
|
7
|
+
def __namespace__
|
8
|
+
(__class__.name.deconstantize.presence || 'Object').constantize
|
9
|
+
end
|
10
|
+
|
11
|
+
|
12
|
+
def running_script
|
13
|
+
"#{ File.basename($0) } #{ ARGV.join " " }"
|
14
|
+
end
|
15
|
+
|
16
|
+
def running_script? script
|
17
|
+
Regexp.new(script) =~ running_script
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
class RKit::Utility
|
2
|
+
UTILITIES = %i{array hash kernel symbol}
|
3
|
+
|
4
|
+
|
5
|
+
config :extends, true
|
6
|
+
|
7
|
+
UTILITIES.each do |utility|
|
8
|
+
alias_config "#{ utility }_extend", :extends
|
9
|
+
load_path __FILE__, "#{ utility }_extend.rb", if: "#{ utility }_extend"
|
10
|
+
end
|
11
|
+
|
12
|
+
# TODO: class_extend: to_module, ancestor=
|
13
|
+
# TODO: module_extend: to_class
|
14
|
+
# TODO: enumerable_extend/or-array_extend: with_indifferent_access
|
15
|
+
# TODO: get back some code from hash_extend && array_extend gems
|
16
|
+
end
|
data/lib/r_kit/version.rb
CHANGED
data/lib/r_kit.rb
CHANGED
@@ -37,6 +37,15 @@ module RKit
|
|
37
37
|
extend self
|
38
38
|
|
39
39
|
|
40
|
-
require
|
41
|
-
require
|
40
|
+
require 'r_kit/core'
|
41
|
+
require 'r_kit/version'
|
42
|
+
|
43
|
+
|
44
|
+
Dir[File.join(File.dirname(__FILE__), "r_kit", "*.rb")].each do |file|
|
45
|
+
basename = File.basename file, ".rb"
|
46
|
+
|
47
|
+
if ["core", "version"].exclude? basename
|
48
|
+
const_set basename.classify, Class.new(RKit::Core){}
|
49
|
+
end
|
50
|
+
end
|
42
51
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r_kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Thomas Petrachi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Rails tools box
|
14
14
|
email:
|
@@ -23,6 +23,11 @@ files:
|
|
23
23
|
- README.md
|
24
24
|
- Rakefile
|
25
25
|
- lib/r_kit.rb
|
26
|
+
- lib/r_kit/active_record_utility.rb
|
27
|
+
- lib/r_kit/active_record_utility/active_record_extend.rb
|
28
|
+
- lib/r_kit/active_record_utility/database_schema_error.rb
|
29
|
+
- lib/r_kit/active_record_utility/utility.rb
|
30
|
+
- lib/r_kit/active_record_utility/utility/tag.rb
|
26
31
|
- lib/r_kit/backtrace.rb
|
27
32
|
- lib/r_kit/backtrace/kernel_extend.rb
|
28
33
|
- lib/r_kit/core.rb
|
@@ -70,6 +75,11 @@ files:
|
|
70
75
|
- lib/r_kit/grid/lib/assets/stylesheets/r_kit/mixins/gris.scss
|
71
76
|
- lib/r_kit/grid/lib/assets/stylesheets/r_kit/variables/grid.scss
|
72
77
|
- lib/r_kit/grid/sass_extend.rb
|
78
|
+
- lib/r_kit/utility.rb
|
79
|
+
- lib/r_kit/utility/array_extend.rb
|
80
|
+
- lib/r_kit/utility/hash_extend.rb
|
81
|
+
- lib/r_kit/utility/kernel_extend.rb
|
82
|
+
- lib/r_kit/utility/symbol_extend.rb
|
73
83
|
- lib/r_kit/version.rb
|
74
84
|
- r_kit.gemspec
|
75
85
|
homepage: https://github.com/petrachi/r_kit
|