dun 0.0.1 → 0.1.1
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/lib/dun.rb +30 -22
- metadata +16 -9
- checksums.yaml +0 -7
data/lib/dun.rb
CHANGED
@@ -2,39 +2,43 @@ module Dun
|
|
2
2
|
class Activity
|
3
3
|
attr_reader :data
|
4
4
|
|
5
|
-
def self.inherited
|
5
|
+
def self.inherited subclass
|
6
6
|
return if Kernel.method_defined? subclass.name
|
7
7
|
|
8
8
|
Kernel.class_eval %Q{
|
9
|
-
def #{subclass.name}
|
10
|
-
#{subclass.name}.new(data).call
|
9
|
+
def #{subclass.name} data = {}, &p
|
10
|
+
#{subclass.name}.new(data).call &p
|
11
11
|
end
|
12
12
|
}
|
13
13
|
|
14
14
|
rescue SyntaxError, TypeError
|
15
15
|
|
16
16
|
end
|
17
|
-
|
18
|
-
def self.<<(data = {})
|
19
|
-
new(data).call
|
20
|
-
end
|
21
17
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
18
|
+
class << self
|
19
|
+
|
20
|
+
def << data = {}
|
21
|
+
new(data).call
|
22
|
+
end
|
23
|
+
|
24
|
+
def data_reader *attrs
|
25
|
+
|
26
|
+
attrs.each do |attr|
|
27
|
+
define_method attr do
|
28
|
+
instance_variable_get("@#{attr}") ||\
|
29
|
+
instance_variable_set("@#{attr}", data[attr.to_sym] || data[attr.to_s])
|
30
|
+
end
|
28
31
|
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
def set attr, value
|
36
|
+
define_method(attr) {value}
|
29
37
|
end
|
30
38
|
|
31
39
|
end
|
32
40
|
|
33
|
-
def
|
34
|
-
define_method(name) { value }
|
35
|
-
end
|
36
|
-
|
37
|
-
def initialize(data)
|
41
|
+
def initialize data
|
38
42
|
@data = data
|
39
43
|
end
|
40
44
|
|
@@ -44,11 +48,15 @@ module Dun
|
|
44
48
|
|
45
49
|
private
|
46
50
|
|
47
|
-
def get_or_set
|
48
|
-
value = instance_variable_get
|
51
|
+
def get_or_set attr, &p
|
52
|
+
value = instance_variable_get "@#{attr}"
|
49
53
|
return value if value
|
50
|
-
value =
|
51
|
-
instance_variable_set
|
54
|
+
value = p.call
|
55
|
+
instance_variable_set "@#{attr}", value
|
56
|
+
end
|
57
|
+
|
58
|
+
def default attr, value
|
59
|
+
instance_variable_set "@#{attr}", value if send(attr).nil?
|
52
60
|
end
|
53
61
|
|
54
62
|
end
|
metadata
CHANGED
@@ -1,16 +1,22 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dun
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Kayak Jiang
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-
|
12
|
+
date: 2013-09-02 00:00:00.000000000 Z
|
12
13
|
dependencies: []
|
13
|
-
description:
|
14
|
+
description: ! 'Dun is a dark color in english, and it is also the pinyin of the chinese
|
15
|
+
character 钝 means not sharp.
|
16
|
+
|
17
|
+
Dun help ruby programers focus on the problem domain directly when programing.
|
18
|
+
|
19
|
+
'
|
14
20
|
email: kayak.jiang@gmail.com
|
15
21
|
executables: []
|
16
22
|
extensions: []
|
@@ -19,25 +25,26 @@ files:
|
|
19
25
|
- lib/dun.rb
|
20
26
|
homepage: https://github.com/baya/dun
|
21
27
|
licenses: []
|
22
|
-
metadata: {}
|
23
28
|
post_install_message:
|
24
29
|
rdoc_options: []
|
25
30
|
require_paths:
|
26
31
|
- lib
|
27
32
|
required_ruby_version: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
28
34
|
requirements:
|
29
|
-
- - '>='
|
35
|
+
- - ! '>='
|
30
36
|
- !ruby/object:Gem::Version
|
31
37
|
version: '0'
|
32
38
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
33
40
|
requirements:
|
34
|
-
- - '>='
|
41
|
+
- - ! '>='
|
35
42
|
- !ruby/object:Gem::Version
|
36
43
|
version: '0'
|
37
44
|
requirements: []
|
38
45
|
rubyforge_project:
|
39
|
-
rubygems_version:
|
46
|
+
rubygems_version: 1.8.25
|
40
47
|
signing_key:
|
41
|
-
specification_version:
|
42
|
-
summary:
|
48
|
+
specification_version: 3
|
49
|
+
summary: Dun help ruby programers focus on the problem domain directly when programing.
|
43
50
|
test_files: []
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: be96d64a400bd0569f989004e3303656ec7ed4b1
|
4
|
-
data.tar.gz: eccc63f5429e716e912954106ee1d54c18240057
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: b4c87e517a12b827aa9a3723ead7fb89a1e7a03d4fa7d81418ef4aa17ebfcd7402de052d736d52c30855c9d207113033764e4a27af5d6bf495e5f251f387bcf8
|
7
|
-
data.tar.gz: d3044bfdbdfc7951f42a824f0d26c67130b0b18cfa2ebe3a20e879c1b2dfa0588592ced3b16fc4229a8713b0b7ea3e1ab8858529aa94df9d7acf001d9a589fde
|