druzy-mvc 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -0,0 +1,5 @@
1
+ module Druzy
2
+ module MVC
3
+ VERSION = "1.0.0"
4
+ end
5
+ 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: []