druzy-mvc 1.0.0
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 +7 -0
- data/lib/druzy/mvc/event.rb +25 -0
- data/lib/druzy/mvc/version.rb +5 -0
- data/lib/druzy/mvc.rb +95 -0
- metadata +75 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e60d354f1dbcc2d7f891c23defcef3ee47f088e6
|
4
|
+
data.tar.gz: c667093b4ec0b38feac97ebdc30ecbffdb36ee56
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: a9e6f5ec9c87414b4a8e5b313bddd1cbec473cfa9d311820d1258a852d35cb6b50107237ced90b44082a8cc7c59ed556edce63e6b36deb941a587fdceea817db
|
7
|
+
data.tar.gz: d07bfdac68469743503b3503734e87412b90160987297149d4b2b1f7130e9d5324e6881343894bcf45fabfc91970ad203fc0f7310f5e1296d66e774dcc280f51
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Druzy
|
2
|
+
module MVC
|
3
|
+
|
4
|
+
class PropertyChangeEvent
|
5
|
+
attr_reader :source, :property_name, :old_value, :newvalue
|
6
|
+
|
7
|
+
def initialize(source, property_name, old_value, new_value)
|
8
|
+
@source=source
|
9
|
+
@property_name=property_name
|
10
|
+
@old_value=old_value
|
11
|
+
@new_value=new_value
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
class IndexedPropertyChangeEvent < PropertyChangeEvent
|
16
|
+
attr_reader :index
|
17
|
+
|
18
|
+
def initialize(source,property_name,old_value,new_value,index)
|
19
|
+
super(source, property_name, old_value, new_value)
|
20
|
+
@index=index
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/lib/druzy/mvc.rb
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
require "druzy/mvc/version"
|
2
|
+
require "druzy/mvc/event"
|
3
|
+
|
4
|
+
module Druzy
|
5
|
+
|
6
|
+
module MVC
|
7
|
+
class Controller
|
8
|
+
attr_reader :views, :model
|
9
|
+
attr_accessor :model
|
10
|
+
|
11
|
+
def initialize(model)
|
12
|
+
super
|
13
|
+
@model=model
|
14
|
+
@views=[]
|
15
|
+
end
|
16
|
+
|
17
|
+
def add_view(view)
|
18
|
+
@views << view
|
19
|
+
@model.add_property_change_listener(view)
|
20
|
+
end
|
21
|
+
|
22
|
+
def remove_view(view)
|
23
|
+
@views.delete(view)
|
24
|
+
@model.remove_property_change_listener(view)
|
25
|
+
end
|
26
|
+
|
27
|
+
def display_views
|
28
|
+
for view in @views
|
29
|
+
view.display()
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def close_views
|
34
|
+
for view in @views
|
35
|
+
view.close()
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def views_on_top
|
40
|
+
for view in @views
|
41
|
+
view.on_top()
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def notify_action(view,action,kwargs)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
class Model
|
50
|
+
|
51
|
+
def initialize
|
52
|
+
super
|
53
|
+
@listeners=[]
|
54
|
+
end
|
55
|
+
|
56
|
+
def add_property_change_listener(listener)
|
57
|
+
@listeners << listener
|
58
|
+
end
|
59
|
+
|
60
|
+
def remove_property_change_listener(listener)
|
61
|
+
@listeners.delete(listener)
|
62
|
+
end
|
63
|
+
|
64
|
+
def fire_property_change(property_change_event)
|
65
|
+
for listener in @listeners
|
66
|
+
listener.property_change(property_change_event)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
class View
|
72
|
+
|
73
|
+
def initialize(controller)
|
74
|
+
@controller=controller
|
75
|
+
end
|
76
|
+
|
77
|
+
def display
|
78
|
+
end
|
79
|
+
|
80
|
+
def close
|
81
|
+
end
|
82
|
+
|
83
|
+
def is_displaying
|
84
|
+
return true
|
85
|
+
end
|
86
|
+
|
87
|
+
def on_top
|
88
|
+
end
|
89
|
+
|
90
|
+
def property_change(property_change_event)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
metadata
ADDED
@@ -0,0 +1,75 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: druzy-mvc
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jonathan Le Greneur
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
description: The pattern MVC, see the Readme
|
42
|
+
email:
|
43
|
+
- jonathan.legreneur@free.fr
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- lib/druzy/mvc.rb
|
49
|
+
- lib/druzy/mvc/event.rb
|
50
|
+
- lib/druzy/mvc/version.rb
|
51
|
+
homepage: https://github.com/druzy/ruby-druzy-mvc
|
52
|
+
licenses:
|
53
|
+
- MIT
|
54
|
+
metadata: {}
|
55
|
+
post_install_message:
|
56
|
+
rdoc_options: []
|
57
|
+
require_paths:
|
58
|
+
- lib
|
59
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - ">="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: '0'
|
64
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
requirements: []
|
70
|
+
rubyforge_project:
|
71
|
+
rubygems_version: 2.2.2
|
72
|
+
signing_key:
|
73
|
+
specification_version: 4
|
74
|
+
summary: A gem represent the pattern MVC
|
75
|
+
test_files: []
|