tbpgr_utils 0.0.66 → 0.0.67

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/README.md CHANGED
@@ -58,6 +58,7 @@ Or install it yourself as:
58
58
  |[AttributesInitializable::ClassMethods.attr_writer init](#attributesinitializableclassmethodsattr_writer_init) |generate attr_writer + initializer |
59
59
  |[EndERB.apply](#enderbapply) |for single template script using __END__ and DATA |
60
60
  |[EvalHelper Object](#evalhelper-object) |enable to use EvalHelper in Object |
61
+ |[EvalHelper#attr_accessor_init_code](#evalhelperattr_accessor_init_code) |create attr_accessor + initialize code, for eval |
61
62
  |[EvalHelper#each_do_code](#evalhelpereach_do_code) |create each do code, for eval |
62
63
  |[EvalHelper#each_brace_code](#evalhelpereach_brace_code) |create each brace single line code, for eval |
63
64
  |[EvalHelper#each_with_index_brace_code](#evalhelpereach_with_index_brace_code) |create eachwith_index_ brace single line code, for eval |
@@ -1383,6 +1384,58 @@ require_code("hoge") # => 'require "hoge"'
1383
1384
 
1384
1385
  [back to list](#list)
1385
1386
 
1387
+ ### EvalHelper#attr_accessor_init_code
1388
+ single case
1389
+
1390
+ ~~~ruby
1391
+ class EvalHelperAttrAccessorInitTest
1392
+ include EvalHelper
1393
+
1394
+ def hoge(args)
1395
+ attr_accessor_init_code(args)
1396
+ end
1397
+ end
1398
+
1399
+ EvalHelperAttrAccessorInitTest.new.hoge('atr1')
1400
+ ~~~
1401
+
1402
+ result
1403
+
1404
+ ~~~ruby
1405
+ attr_accessor :atr1
1406
+
1407
+ def initialize(atr1)
1408
+ @atr1 = atr1
1409
+ end
1410
+ ~~~
1411
+
1412
+ multi case
1413
+
1414
+ ~~~ruby
1415
+ class EvalHelperAttrAccessorInitTest
1416
+ include EvalHelper
1417
+
1418
+ def hoge(args)
1419
+ attr_accessor_init_code(args)
1420
+ end
1421
+ end
1422
+
1423
+ EvalHelperAttrAccessorInitTest.new.hoge(['atr1', 'atr2'])
1424
+ ~~~
1425
+
1426
+ result
1427
+
1428
+ ~~~ruby
1429
+ attr_accessor :atr1, :atr2
1430
+
1431
+ def initialize(atr1, atr2)
1432
+ @atr1 = atr1
1433
+ @atr2 = atr2
1434
+ end
1435
+ ~~~
1436
+
1437
+ [back to list](#list)
1438
+
1386
1439
  ### EvalHelper#each_do_code
1387
1440
  ~~~ruby
1388
1441
  require 'eval_helper'
@@ -2476,6 +2529,7 @@ if you are Sublime Text2 user, you can use snippet for TbpgrUtils.
2476
2529
  https://github.com/tbpgr/tbpgr_utils_snippets
2477
2530
 
2478
2531
  ## History
2532
+ * version 0.0.67 : add EvalHelper#attr_accessor_init_code
2479
2533
  * version 0.0.66 : add EvalHelper#each_with_index_do_code
2480
2534
  * version 0.0.65 : add EvalHelper#each_with_index_brace_code
2481
2535
  * version 0.0.64 : add EvalHelper#each_do_code
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module EvalHelper
4
+ require 'eval_helper/attr_accessor_init_code'
4
5
  require 'eval_helper/each_brace_code'
5
6
  require 'eval_helper/each_do_code'
6
7
  require 'eval_helper/each_with_index_brace_code'
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+
3
+ module EvalHelper
4
+ # create attr_accessor + initialize code, for eval
5
+ #
6
+ # ==== Examples
7
+ #
8
+ # single case
9
+ #
10
+ # class EvalHelperAttrAccessorInitTest
11
+ # include EvalHelper
12
+ #
13
+ # def hoge(args)
14
+ # attr_accessor_init_code(args)
15
+ # end
16
+ # end
17
+ #
18
+ # EvalHelperAttrAccessorInitTest.new.hoge('atr1')
19
+ #
20
+ # result
21
+ #
22
+ # attr_accessor :atr1
23
+ #
24
+ # def initialize(atr1)
25
+ # @atr1 = atr1
26
+ # end
27
+ #
28
+ # multi case
29
+ #
30
+ # class EvalHelperAttrAccessorInitTest
31
+ # include EvalHelper
32
+ #
33
+ # def hoge(args)
34
+ # attr_accessor_init_code(args)
35
+ # end
36
+ # end
37
+ #
38
+ # EvalHelperAttrAccessorInitTest.new.hoge(['atr1', 'atr2'])
39
+ #
40
+ # result
41
+ #
42
+ # attr_accessor :atr1, :atr2
43
+ #
44
+ # def initialize(atr1, atr2)
45
+ # @atr1 = atr1
46
+ # @atr2 = atr2
47
+ # end
48
+ #
49
+ def attr_accessor_init_code(attribute)
50
+ return '' unless [String, Array].include? attribute.class
51
+ atrs = []
52
+ if attribute.is_a? String
53
+ atrs << attribute
54
+ elsif attribute.is_a? Array
55
+ atrs = attribute
56
+ end
57
+
58
+ accessors = atrs.reduce([]) { |ret, v|ret << ":#{v}" }.join(', ')
59
+ init_variables = atrs.reduce([]) { |ret, v|ret << "#{v}" }.join(', ')
60
+ set_variables = atrs.reduce([]) { |ret, v|ret << " @#{v} = #{v}" }.join("\n")
61
+ ret_code = <<-EOS
62
+ attr_accessor #{accessors}
63
+
64
+ def initialize(#{init_variables})
65
+ #{set_variables}
66
+ end
67
+ EOS
68
+ end
69
+ end
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Tbpgr Utilities
4
4
  module TbpgrUtils
5
- VERSION = '0.0.66'
5
+ VERSION = '0.0.67'
6
6
  end
@@ -0,0 +1,69 @@
1
+ # encoding: utf-8
2
+ require 'spec_helper'
3
+ require 'eval_helper'
4
+
5
+ describe 'EvalHelper' do
6
+ context :attr_accessor_init_code do
7
+ class EvalHelperAttrAccessorInitTest
8
+ include EvalHelper
9
+
10
+ def hoge(args)
11
+ attr_accessor_init_code(args)
12
+ end
13
+ end
14
+ cases = [
15
+ {
16
+ case_no: 1,
17
+ case_title: 'single case',
18
+ input: 'atr1',
19
+ expected: <<-EOS
20
+ attr_accessor :atr1
21
+
22
+ def initialize(atr1)
23
+ @atr1 = atr1
24
+ end
25
+ EOS
26
+ },
27
+ {
28
+ case_no: 2,
29
+ case_title: 'multi case',
30
+ input: ['atr1', 'atr2'],
31
+ expected: <<-EOS
32
+ attr_accessor :atr1, :atr2
33
+
34
+ def initialize(atr1, atr2)
35
+ @atr1 = atr1
36
+ @atr2 = atr2
37
+ end
38
+ EOS
39
+ },
40
+ ]
41
+
42
+ cases.each do |c|
43
+ it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
44
+ begin
45
+ case_before c
46
+
47
+ # -- given --
48
+ eval_helper = EvalHelperAttrAccessorInitTest.new
49
+
50
+ # -- when --
51
+ actual = eval_helper.hoge(c[:input])
52
+
53
+ # -- then --
54
+ expect(actual).to eq(c[:expected])
55
+ ensure
56
+ case_after c
57
+ end
58
+ end
59
+
60
+ def case_before(c)
61
+ # implement each case before
62
+ end
63
+
64
+ def case_after(c)
65
+ # implement each case after
66
+ end
67
+ end
68
+ end
69
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tbpgr_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.66
4
+ version: 0.0.67
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-14 00:00:00.000000000 Z
12
+ date: 2014-03-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &21744960 !ruby/object:Gem::Requirement
16
+ requirement: &26371188 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 4.0.1
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *21744960
24
+ version_requirements: *26371188
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &21744672 !ruby/object:Gem::Requirement
27
+ requirement: &26370900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *21744672
35
+ version_requirements: *26370900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &21744444 !ruby/object:Gem::Requirement
38
+ requirement: &26370672 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *21744444
46
+ version_requirements: *26370672
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &21744120 !ruby/object:Gem::Requirement
49
+ requirement: &26370348 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 2.14.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *21744120
57
+ version_requirements: *26370348
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: simplecov
60
- requirement: &21743820 !ruby/object:Gem::Requirement
60
+ requirement: &26370048 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: 0.8.2
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *21743820
68
+ version_requirements: *26370048
69
69
  description: Utilities
70
70
  email:
71
71
  - tbpgr@tbpgr.jp
@@ -86,6 +86,7 @@ files:
86
86
  - lib/attributes_initializable.rb
87
87
  - lib/end_erb.rb
88
88
  - lib/eval_helper.rb
89
+ - lib/eval_helper/attr_accessor_init_code.rb
89
90
  - lib/eval_helper/each_brace_code.rb
90
91
  - lib/eval_helper/each_do_code.rb
91
92
  - lib/eval_helper/each_with_index_brace_code.rb
@@ -164,6 +165,7 @@ files:
164
165
  - rubocop-todo.yml
165
166
  - spec/attributes_hashable_spec.rb
166
167
  - spec/attributes_initializable_spec.rb
168
+ - spec/eval_helper/attr_accessor_init_code_spec.rb
167
169
  - spec/eval_helper/each_brace_code_spec.rb
168
170
  - spec/eval_helper/each_do_code_spec.rb
169
171
  - spec/eval_helper/each_with_index_brace_code_spec.rb
@@ -261,6 +263,7 @@ summary: Utilities
261
263
  test_files:
262
264
  - spec/attributes_hashable_spec.rb
263
265
  - spec/attributes_initializable_spec.rb
266
+ - spec/eval_helper/attr_accessor_init_code_spec.rb
264
267
  - spec/eval_helper/each_brace_code_spec.rb
265
268
  - spec/eval_helper/each_do_code_spec.rb
266
269
  - spec/eval_helper/each_with_index_brace_code_spec.rb