r_kit 0.2.1.1 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +8 -8
  2. data/LICENSE.txt +1 -1
  3. data/lib/r_kit/backtrace/kernel_extend.rb +20 -0
  4. data/lib/r_kit/backtrace.rb +5 -0
  5. data/lib/r_kit/core/configurer.rb +69 -0
  6. data/lib/r_kit/core/engineer.rb +42 -0
  7. data/lib/r_kit/core/loader.rb +132 -0
  8. data/lib/r_kit/core.rb +60 -6
  9. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/alignments.scss +0 -0
  10. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/displays.scss +0 -0
  11. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/html.scss +0 -0
  12. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/typography/links.scss +1 -1
  13. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/typography/lists.scss +0 -0
  14. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/typography/paragraphs.scss +0 -0
  15. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/typography/titles.scss +0 -0
  16. data/lib/{assets/stylesheets/r_kit/css → r_kit/css/lib/assets/stylesheets/r_kit/base}/typography.scss +0 -0
  17. data/lib/r_kit/css/lib/assets/stylesheets/r_kit/base.scss +4 -0
  18. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/components/btn.scss +2 -2
  19. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/components.scss +0 -0
  20. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/animation.scss +0 -0
  21. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/box-shadows/curved-shadows.scss +0 -0
  22. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/box-shadows/straight-shadows.scss +0 -0
  23. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/box-shadows.scss +0 -0
  24. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/keyframes.scss +0 -0
  25. data/lib/r_kit/css/lib/assets/stylesheets/r_kit/mixins/links.scss +5 -0
  26. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins/titles.scss +0 -0
  27. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/mixins.scss +1 -0
  28. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/variables/colors.scss +10 -16
  29. data/lib/{assets → r_kit/css/lib/assets}/stylesheets/r_kit/variables.scss +0 -0
  30. data/lib/{assets/stylesheets/r_kit.scss → r_kit/css/lib/assets/stylesheets/r_kit.scss.erb} +1 -3
  31. data/lib/r_kit/css/sass_extend.rb +8 -0
  32. data/lib/r_kit/css.rb +35 -0
  33. data/lib/r_kit/decorator/active_record_extend.rb +59 -0
  34. data/lib/r_kit/decorator/base.rb +8 -13
  35. data/lib/r_kit/decorator.rb +8 -6
  36. data/lib/r_kit/grid/base/grid.rb +31 -0
  37. data/lib/r_kit/grid/base/grid_col.rb +26 -0
  38. data/lib/r_kit/grid/base/grid_row.rb +29 -0
  39. data/lib/r_kit/grid/base.rb +48 -0
  40. data/lib/r_kit/grid/binding.rb +80 -0
  41. data/lib/r_kit/grid/enumerable_extend.rb +5 -0
  42. data/lib/r_kit/grid/kernel_extend.rb +14 -0
  43. data/lib/r_kit/grid/lib/assets/stylesheets/r_kit/base/grid.scss +27 -0
  44. data/lib/{assets/stylesheets/r_kit/css → r_kit/grid/lib/assets/stylesheets/r_kit}/grid.scss +34 -4
  45. data/lib/{assets/.gitkeep → r_kit/grid/lib/assets/stylesheets/r_kit/mixins/gris.scss} +0 -0
  46. data/lib/r_kit/grid/lib/assets/stylesheets/r_kit/variables/grid.scss +1 -0
  47. data/lib/r_kit/grid/sass_extend.rb +13 -0
  48. data/lib/r_kit/grid.rb +23 -6
  49. data/lib/r_kit/version.rb +1 -1
  50. data/lib/r_kit.rb +34 -22
  51. data/r_kit.gemspec +1 -1
  52. metadata +44 -36
  53. data/lib/assets/javascripts/r_kit/base.js +0 -2
  54. data/lib/assets/javascripts/r_kit/dom_manipulation/class_manipulation.js +0 -14
  55. data/lib/assets/javascripts/r_kit/dom_manipulation.js +0 -1
  56. data/lib/assets/javascripts/r_kit.js +0 -3
  57. data/lib/assets/stylesheets/r_kit/animations/fast_load.scss +0 -11
  58. data/lib/assets/stylesheets/r_kit/animations.scss +0 -1
  59. data/lib/assets/stylesheets/r_kit/css.scss +0 -5
  60. data/lib/r_kit/core/object.rb +0 -15
  61. data/lib/r_kit/core/object_extension.rb +0 -7
  62. data/lib/r_kit/decorator/active_record_extension.rb +0 -25
  63. data/lib/r_kit/engine.rb +0 -4
  64. data/lib/r_kit/grid/action_view_extension.rb +0 -89
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MDU0ZWMxMWM2MTA5OGYxMzQzMjliMTQ4MGE1NDhiNzgxYjFmYzkyMA==
4
+ NzI3YjZmMTFhMzI4YjgyYTUyZDJkZmQ1NGJmZDljZDc0MzI2ZGQ0Ng==
5
5
  data.tar.gz: !binary |-
6
- NzNlNWNlYmQxNGRjYzE0NjM1YzVlOWZlNGNkNWMwNzYzZWFlNjFmMg==
6
+ YjU4NWE1ODdjYjg2ZjYyZWQwZmJjNjYxMjFlMGYwYmI5YzcwYzFmNA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NWY5ZWZkZTgxNWZjNDc1MjI4ZWJiZWVhYjgyMzIyZGMyZGE4NDQzZTEzMThk
10
- ZmNmYWM2NTZiNTNmN2IwNTY5NDI0MTg2MDlhZGNhMzYxMjA3NGZkMDM5NGYy
11
- Y2Y0Y2QyMmVlMWExZTllZmQ4NjMxZTJmMTdkYTkyODJlNGNhYjQ=
9
+ ZGM4MGZlNzNhZTY5MTRhZWUyMmQzMGU3MTNkNWI4MmI2MjNkYTMzMDM3Y2U4
10
+ YmRhMmVjNDI5MWQwYjA4MzZmMjYzNTIyMWNiNWFjMjdiZmNhYzk1NTlhNDJj
11
+ OTg3ZTgwMTc1NGU3Zjc0OWFiYzgyZWFhM2ZjMDRmZGNjMzNkNmU=
12
12
  data.tar.gz: !binary |-
13
- MzczNzUzYjQwYjc1MjlhMzJjMTI4M2YzMDAxMjk4Y2UzNmE1NjgyNTEwMWE5
14
- Yzg0MDdmYmI1YTQyNTYxZWRhYmM1MDU4Y2Q1MWI3YmQ5MDFkOThkOTZlMDNh
15
- OTAyYmM0NTg5YWY2ZTliNGJhZDcyZTVmNDUzZDMyMTYxMjRhYmQ=
13
+ ODYyYjk2MzEwOTU0N2U4YmNiNWNkMzliYzA2YWRmM2YxODQzNzYzZjBmNDM2
14
+ ZDZmNWUzNDdjOGFkMDJkMWZhMmQ0MTA3YzAwMzBiZDc5MDFiZDA5MzMyZTRm
15
+ OGU3N2Q5ZmZkYTcyMGFiNGUxMGE1Y2I2NTM3Y2JjOTNlOWU2YmE=
data/LICENSE.txt CHANGED
@@ -19,4 +19,4 @@ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
19
  NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
20
  LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
21
  OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,20 @@
1
+ require 'continuation'
2
+
3
+ module Kernel
4
+
5
+ def backtrace &block
6
+ cc = nil
7
+ block ||= ->(obj){ obj != self }
8
+
9
+ tracer = TracePoint.trace(:return) do |tp|
10
+ if tp.self != self && block.call(tp.self)
11
+ tracer.disable
12
+ cc.call tp.self
13
+ end
14
+ end
15
+
16
+ backtrace = callcc { |cont| cc = cont }
17
+ backtrace unless backtrace.is_a? Continuation
18
+ end
19
+
20
+ end
@@ -0,0 +1,5 @@
1
+ class RKit::Backtrace < RKit::Core
2
+
3
+ load_path __FILE__, 'kernel_extend.rb'
4
+
5
+ end
@@ -0,0 +1,69 @@
1
+ class RKit::Core::Configurer
2
+ attr_accessor :_base, :_config, :_presets, :_aliases
3
+
4
+ def initialize base, config = {}
5
+ @_base = base
6
+ @_config = config
7
+ @_presets = Hash.new{ |hash, key| hash[key] = self.class.new(_base) }
8
+ @_aliases = []
9
+ end
10
+
11
+
12
+ def preset name, config
13
+ _presets[name] = self.class.new(_base, config)
14
+ end
15
+
16
+ def load_preset! name
17
+ _config.deep_merge! _presets[name]._config
18
+ end
19
+
20
+
21
+ def config *name, default
22
+ _config.deep_merge! [*name, default].reverse.inject{ |nested, key| Hash[key, nested] }
23
+ end
24
+
25
+ def load_config! config_options
26
+ _config.deep_merge! config_options
27
+ end
28
+
29
+
30
+ def alias_config *name, old_name
31
+ _aliases << [name, old_name]
32
+ end
33
+
34
+ def alias *name, old_name
35
+ new_name = name.pop
36
+ config = name.inject(_config){ |config, nested| config = config[nested] }
37
+
38
+ config[new_name] = config[old_name] if config[new_name].blank?
39
+ end
40
+
41
+ def load_alias!
42
+ _aliases.each do |(name, old_name)|
43
+ self.alias *name, old_name
44
+ end
45
+ end
46
+
47
+
48
+ def load_public_accessor!
49
+ _base.const_set :CONFIG, OpenStruct.new(_config)
50
+ _base.define_singleton_method("config"){ self::CONFIG }
51
+ end
52
+
53
+
54
+ def load! config
55
+ load_preset! config.delete(:preset)
56
+ load_config! config
57
+ load_alias!
58
+ load_public_accessor!
59
+ end
60
+
61
+
62
+ def inspect
63
+ _config.inspect
64
+ end
65
+
66
+ def fingerprint
67
+ _config.sort.join
68
+ end
69
+ end
@@ -0,0 +1,42 @@
1
+ class RKit::Core::Engineer
2
+ attr_accessor :_base, :pathname, :sprockets
3
+
4
+ def initialize base
5
+ @_base = base
6
+ end
7
+
8
+
9
+ def load_engine?
10
+ @pathname
11
+ end
12
+
13
+ def load_engine!
14
+ pathname = @pathname
15
+
16
+ Class.new(Rails::Engine) do
17
+ paths.path = pathname
18
+ end
19
+ end
20
+
21
+
22
+ def load_sprockets?
23
+ @sprockets
24
+ end
25
+
26
+ def load_sprockets!
27
+ digest = _base.digest
28
+ sprockets_extend = Module.new do
29
+ define_method "digest" do
30
+ super().update(digest)
31
+ end
32
+ end
33
+
34
+ Sprockets::Base.send :prepend, sprockets_extend
35
+ end
36
+
37
+
38
+ def load!
39
+ load_engine! if load_engine?
40
+ load_sprockets! if load_sprockets?
41
+ end
42
+ end
@@ -0,0 +1,132 @@
1
+ class RKit::Core::Loader
2
+ attr_accessor :_base, :load_paths, :dependencies
3
+
4
+ @@loaded = []
5
+
6
+ def initialize base
7
+ @_base = base
8
+ @load_paths = []
9
+ @dependencies = []
10
+ end
11
+
12
+
13
+ def dependency dependency
14
+ dependencies << Dependency.new(_base, str: dependency)
15
+ end
16
+
17
+ def dependencies!
18
+ dependencies.each &:load!
19
+ end
20
+
21
+
22
+ def load_path file, path, options = {}
23
+ load_path = LoadPath.new _base, file: file, path: path
24
+ load_path.conditions = options.slice :if, :unless
25
+
26
+ load_paths << load_path
27
+ end
28
+
29
+ def load_paths!
30
+ load_paths.each &:load!
31
+ end
32
+
33
+
34
+ def loaded!
35
+ @@loaded << _base.name.demodulize.underscore
36
+ end
37
+
38
+
39
+ def load!
40
+ dependencies!
41
+ load_paths!
42
+ loaded!
43
+ end
44
+
45
+
46
+ class LoadPath
47
+ attr_accessor :_base,
48
+ :file, :path, :conditions
49
+
50
+ def initialize base, file:, path:;
51
+ @_base = base
52
+
53
+ @file = file
54
+ @path = path
55
+ end
56
+
57
+
58
+ def extname
59
+ File.extname(file)
60
+ end
61
+
62
+ def fullpath
63
+ file.chomp! File.extname(file)
64
+ File.expand_path(path, file)
65
+ end
66
+
67
+
68
+ def should_load?
69
+ conditions.inject(true) do |should_load, (statement, condition)|
70
+ should_load && exec_condition(statement, condition)
71
+ end
72
+ end
73
+
74
+ def load_path!
75
+ require fullpath
76
+ end
77
+
78
+ def load!
79
+ load_path! if should_load?
80
+ end
81
+
82
+
83
+ def exec_condition statement, condition
84
+ condition = case condition
85
+ when Proc
86
+ condition.call _base::CONFIG
87
+ when Symbol, String
88
+ _base::CONFIG.send condition
89
+ end
90
+
91
+ exec_statement statement, condition
92
+ end
93
+
94
+ def exec_statement statement, condition
95
+ case statement
96
+ when :if
97
+ !!condition
98
+ when :unless
99
+ !condition
100
+ end
101
+ end
102
+ end
103
+
104
+
105
+ class Dependency < String
106
+ attr_accessor :_base
107
+
108
+ def initialize base, str: ""
109
+ @_base = base
110
+
111
+ super str.to_s
112
+ end
113
+
114
+ def should_load?
115
+ !RKit::Core::Loader.class_variable_get(:@@loaded).include? self
116
+ end
117
+
118
+ def dependency!
119
+ warn %Q{
120
+ WARNING - RKit::#{ classify } was implicitly loaded,
121
+ As a dependency for #{ _base }.
122
+ You may want to load it explicitly.
123
+ }
124
+ RKit.const_get(classify).load
125
+ end
126
+
127
+ def load!
128
+ dependency! if should_load?
129
+ end
130
+ end
131
+
132
+ end
data/lib/r_kit/core.rb CHANGED
@@ -1,8 +1,62 @@
1
- module RKit::Core
2
- def self.init!
3
- require "r_kit/core/object_extension"
4
- Object.extend ObjectExtension
5
-
6
- require "r_kit/core/object"
1
+ class RKit::Core
2
+
3
+ class << self
4
+ def init!
5
+ @_config = Configurer.new self
6
+ @_engine = Engineer.new self
7
+ @_load = Loader.new self
8
+ end
9
+
10
+ def inherited base
11
+ base.init!
12
+ super
13
+ end
14
+
15
+
16
+ def with_engine file
17
+ @_engine.pathname = Pathname.new(File.dirname(file)) + name.demodulize.underscore
18
+ end
19
+
20
+ def with_sprockets file
21
+ @_engine.sprockets = true
22
+ load_path file, 'sass_extend.rb'
23
+ end
24
+
25
+
26
+ delegate :config, :alias_config, :preset,
27
+ to: :@_config
28
+
29
+
30
+ delegate :load_path, :dependency,
31
+ to: :@_load
32
+
33
+
34
+ def load config = {}
35
+ @_config.load! config
36
+ @_engine.load!
37
+ @_load.load!
38
+ end
39
+
40
+
41
+
42
+ def inspect
43
+ "#{ name } config_w/#{ @_config.inspect }"
44
+ # TODO: add link to doc
45
+ end
46
+
47
+ def digest
48
+ Digest::MD5.hexdigest @_config.fingerprint
49
+ end
7
50
  end
51
+
52
+
53
+ require 'r_kit/core/configurer.rb'
54
+ require 'r_kit/core/engineer.rb'
55
+ require 'r_kit/core/loader.rb'
56
+
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
+
8
62
  end
@@ -1,7 +1,7 @@
1
1
  a{
2
2
  color: $link-color;
3
3
  text-decoration: none;
4
-
4
+
5
5
  &:hover{
6
6
  text-decoration: underline;
7
7
  }
@@ -0,0 +1,4 @@
1
+ @import "base/alignments";
2
+ @import "base/displays";
3
+ @import "base/html";
4
+ @import "base/typography";
@@ -1,9 +1,9 @@
1
1
  .btn{
2
2
  @include unstyled-link();
3
3
  display: inline-block;
4
-
4
+
5
5
  padding: .625em;
6
-
6
+
7
7
  background-color: $primary-color;
8
8
  color: $background-color;
9
9
  }
@@ -0,0 +1,5 @@
1
+ @mixin unstyled-link() {
2
+ color: inherit;
3
+ text-decoration: inherit;
4
+ cursor: inherit;
5
+ }
@@ -1,4 +1,5 @@
1
1
  @import "mixins/animation";
2
2
  @import "mixins/box-shadows";
3
3
  @import "mixins/keyframes";
4
+ @import "mixins/links";
4
5
  @import "mixins/titles";
@@ -1,5 +1,5 @@
1
- $primary-color: #b62b2b !default;
2
- $secondary-color: skyblue !default;
1
+ $primary-color: primary-color() !default;
2
+ // $secondary-color: secondary-color() !default;
3
3
 
4
4
  // need here defaults colors
5
5
  // colors needed : success - warning - danger - info - muted
@@ -7,31 +7,25 @@ $secondary-color: skyblue !default;
7
7
  // look into theeses colors : cornflowerblue, firebrick, gold, limegreen
8
8
 
9
9
  /*
10
- $success-color
11
- $warning-color
12
- $danger-color
13
- $info-color
10
+ $success-color ?greenyellow
11
+ $warning-color ?gold
12
+ $danger-color ?firebrick
13
+ $info-color ?cornflowerblue
14
14
  $muted-color
15
15
  */
16
- $text-color: #888 !default;
17
- $link-color: $secondary-color !default;
16
+ $text-color: text-color() !default;
17
+ $link-color: link-color() !default;
18
18
  /*$text-success-color
19
19
  $text-warning-color
20
20
  $text-danger-color
21
21
  $text-info-color
22
22
  $text-muted-color
23
23
  */
24
- $background-color: #111 !default;
25
- $background-alt-color: #181818 !default;
24
+ $background-color: background-color() !default;
25
+ // $background-alt-color: #181818 !default;
26
26
  /*$background-success-color
27
27
  $background-warning-color
28
28
  $background-danger-color
29
29
  $background-info-color
30
30
  $background-muted-color
31
31
  */
32
-
33
- // constants
34
- $white: #fbfbfb !default;
35
- $black: #111 !default;
36
-
37
- $shadow: rgba(black, .6) !default;
@@ -1,6 +1,4 @@
1
1
  @import "r_kit/variables";
2
-
3
2
  @import "r_kit/mixins";
4
- @import "r_kit/animations";
5
- @import "r_kit/css";
3
+ @import "r_kit/base";
6
4
  @import "r_kit/components";
@@ -0,0 +1,8 @@
1
+ module Sass::Script::Functions
2
+
3
+ RKit::Css.config.colors.each do |name, value|
4
+ define_method name do
5
+ Sass::Script::String.new value
6
+ end
7
+ end
8
+ end
data/lib/r_kit/css.rb ADDED
@@ -0,0 +1,35 @@
1
+ class RKit::Css < RKit::Core
2
+
3
+ with_engine __FILE__
4
+ with_sprockets __FILE__
5
+
6
+ config :colors, :primary_color, '#b62b2b'
7
+ config :colors, :text_color, '#888'
8
+ config :colors, :background_color, '#111'
9
+
10
+
11
+ alias_config :colors, :link_color, :background_color
12
+ alias_config :colors, :link_background_color, :primary_color
13
+
14
+ # unused colors
15
+ # config :colors, :secondary_color, 'cornflowerblue'
16
+ # config :colors, :background_alt_color, '#181818'
17
+
18
+ preset :light_colors,
19
+ colors: {
20
+ text_color: '#444',
21
+ background_color: '#f9f9f9'
22
+
23
+ # $background-alt-color: #e6e6e6;
24
+ # border color #eee
25
+ # code color (grey on grey) #a0a0a0
26
+ # title color: #666
27
+ # btn : #ededed 38% #dedede
28
+
29
+ }
30
+
31
+
32
+ # preset :dark_theme, colors: {primary_color: '#456', secondary_color: '#123', youpi_color: "#012"}
33
+ # this dark theme is beatifull with youpi in bg and primary for links
34
+
35
+ end
@@ -0,0 +1,59 @@
1
+ module RKit::Decorator::ActiveRecordExtend
2
+ attr_accessor :decorator_klass
3
+
4
+ def acts_as_decorables base = nil, &block
5
+ define_decorator base || block
6
+ define_instance_methods
7
+ end
8
+
9
+
10
+ def define_decorator arg
11
+ @decorator_klass = decorator_klass_from arg
12
+ end
13
+
14
+
15
+ def decorator_klass_from arg
16
+ send "decorator_klass_from_#{ arg.class.name.underscore }", arg
17
+ end
18
+
19
+ def decorator_klass_from_nil_class *args
20
+ decorator_klass_from "#{ name }Decorator".constantize
21
+ end
22
+
23
+ def decorator_klass_from_class base
24
+ if base <=> RKit::Decorator::Base
25
+ base
26
+ else
27
+ base.send :include, Module.new{ include refine(RKit::Decorator::Base){} }
28
+ end
29
+ end
30
+
31
+ def decorator_klass_from_module mod
32
+ namespace = (mod.name.deconstantize.presence || "Object").constantize
33
+ const_name = mod.name.demodulize
34
+
35
+ namespace.send :remove_const, const_name
36
+ namespace.const_set const_name, Class.new(RKit::Decorator::Base){ include mod }
37
+ end
38
+
39
+ def decorator_klass_from_proc block
40
+ (name.deconstantize.presence || "Object")
41
+ .constantize
42
+ .const_set "#{ name.demodulize }Decorator", Class.new(RKit::Decorator::Base, &block)
43
+ end
44
+
45
+
46
+ def decorate_all
47
+ all.map(&:decorate)
48
+ end
49
+
50
+
51
+ def define_instance_methods
52
+ define_method "decorate" do
53
+ self.class.decorator_klass.new self
54
+ end
55
+ end
56
+
57
+
58
+ ActiveRecord::Base.extend self
59
+ end
@@ -1,22 +1,17 @@
1
1
  require 'delegate'
2
2
 
3
3
  class RKit::Decorator::Base < SimpleDelegator
4
- alias :_base :__getobj__
5
-
6
- def initialize base, view_context, instance_variables = {}
7
- @view_context = view_context
8
-
9
- instance_variables.each do |key, value|
10
- instance_variable_set "@#{ key }", value
11
- end
12
-
13
- super(base)
4
+ alias :_obj :__getobj__
5
+
6
+ def view_context
7
+ backtrace{ |obj| obj.is_a? ActionView::Base } || backtrace{ |obj| obj.respond_to? :view_context }.view_context
14
8
  end
15
-
9
+
10
+
16
11
  def _h
17
- @view_context
12
+ @view_context ||= view_context
18
13
  end
19
-
14
+
20
15
  def === object
21
16
  self == object || __getobj__ == object
22
17
  end
@@ -1,8 +1,10 @@
1
- module RKit::Decorator
2
- def self.init!
3
- require "r_kit/decorator/active_record_extension"
4
- require "r_kit/decorator/base"
1
+ class RKit::Decorator < RKit::Core
2
+
3
+ dependency :backtrace
4
+
5
+
6
+ load_path __FILE__, 'base.rb'
7
+
8
+ load_path __FILE__, 'active_record_extend.rb'
5
9
 
6
- ActiveRecord::Base.extend ActiveRecordExtension
7
- end
8
10
  end