rabbit-slide-giosakti-201710-coding-conventions-ruby 2017.10.16.1

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: dabfcf2e7e2ce582669e6e18e9c59ffc695c4d7d
4
+ data.tar.gz: 839fa58562620cd3d14efb599b85189e0028747d
5
+ SHA512:
6
+ metadata.gz: 7207e6359e956db3a3143448efe53377895268259b840d2d49d08c91d61289fa14857ca9b820be28e2a05d44b30e13879fbaea6b0a5714fd33e9748e5c551832
7
+ data.tar.gz: 3732a9322fb7048fb03a0e0fc5e42350c4a602ea95fc564ac6ebb9253bafd135641c27f8042178b69536327c9ab2044f74c5335eca1f7fa4b58dd049ac882fa6
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ coding-conventions-ruby.rab
data/README.md ADDED
@@ -0,0 +1,36 @@
1
+ # Coding Conventions in Ruby
2
+
3
+ This talk gives intro about coding conventions and how can it be enforced in ruby.
4
+
5
+ ## License
6
+
7
+ ### Slide
8
+
9
+ MIT
10
+
11
+ Use the followings for notation of the author:
12
+
13
+ * Giovanni Sakti
14
+
15
+ ## For author
16
+
17
+ ### Show
18
+
19
+ rake
20
+
21
+ ### Publish
22
+
23
+ rake publish
24
+
25
+ # or for rubygems only
26
+ rake publish:rubygems
27
+
28
+ ## For viewers
29
+
30
+ ### Install
31
+
32
+ gem install rabbit-slide-giosakti-201710-coding-conventions-ruby
33
+
34
+ ### Show
35
+
36
+ rabbit rabbit-slide-giosakti-201710-coding-conventions-ruby.gem
data/Rakefile ADDED
@@ -0,0 +1,20 @@
1
+ require "rabbit/task/slide"
2
+
3
+ # Edit ./config.yaml to customize meta data
4
+
5
+ spec = nil
6
+ Rabbit::Task::Slide.new do |task|
7
+ spec = task.spec
8
+ spec.files += Dir.glob("images/**/*.*")
9
+ # spec.files -= Dir.glob("private/**/*.*")
10
+
11
+ # You may include other themes here
12
+ # spec.add_runtime_dependency("rabbit-theme-nyankosakana")
13
+ # spec.add_runtime_dependency("rabbit-theme-yart")
14
+ end
15
+
16
+ desc "Tag #{spec.version}"
17
+ task :tag do
18
+ sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
19
+ sh("git", "push", "--tags")
20
+ end
@@ -0,0 +1,129 @@
1
+ = Coding Conventions in Ruby
2
+
3
+ % : subtitle
4
+ % in Ruby
5
+ : author
6
+ Giovanni Sakti
7
+ : institution
8
+ Starqle
9
+ % : content-source
10
+ % id_ruby
11
+ % : date
12
+ % 2017-10-16
13
+ : theme
14
+ .
15
+
16
+ = Coding Conventions
17
+
18
+ (('tag:center'))What is coding conventions?
19
+
20
+ == properties
21
+ : hide-title
22
+ true
23
+
24
+ = Coding Conventions
25
+
26
+ * A set of guidelines
27
+ * for specific programming languages
28
+ * recommend programming styles, practics and methods
29
+
30
+ = What does it cover?
31
+
32
+ * file organization
33
+ * indentation
34
+ * comments
35
+ * declarations
36
+ * statements
37
+
38
+ = What does it cover? (cont'd)
39
+
40
+ * white space
41
+ * naming conventions
42
+ * practices & principles
43
+ * architectural
44
+ * etc
45
+
46
+ = Applies
47
+
48
+ (('tag:center'))Coding conventions may be applied to ((*organization*)), ((*specific project*)) or ((*specific product*))
49
+
50
+ == properties
51
+ : hide-title
52
+ true
53
+
54
+ = Benefits
55
+
56
+ * Improve readability
57
+ * Make software maintenance easier
58
+
59
+ = Rationale
60
+
61
+ * 40-80% of the lifetime cost of a piece of software ((*goes to maintenance*))
62
+ * Hardly any software is maintained for its whole life by the original author
63
+
64
+ = Rationale (cont'd)
65
+
66
+ * Code conventions ((*improve the readability*)) of the software, allowing engineers to understand new code more quickly and thoroughly
67
+ * If you ship your source code as a product, you need to make sure it is as well packaged and clean as any other product you create
68
+
69
+ = In Practice
70
+
71
+ (('tag:center'))Conventions may be formalized in a documented set of rules or may be as informal as the habitual coding practices of an individual
72
+
73
+ == properties
74
+ : hide-title
75
+ true
76
+
77
+ = Ruby Style Guide
78
+
79
+ Ruby has coding conventions document called the ((*Ruby Style Guide*)) that serve as a generic reference for Ruby programmer\n
80
+
81
+ ((<"github.com/bbatsov/ruby-style-guide"|URL:github.com/bbatsov/ruby-style-guide>))
82
+
83
+ = RuboCop
84
+
85
+ (('tag:center'))Ruby also has interesting software to enforce coding convention called ((*RuboCop*))
86
+
87
+ = Installing RuboCop
88
+
89
+ # rouge console
90
+
91
+ % gem install rubocop
92
+
93
+ = Using RuboCop
94
+
95
+ # rouge console
96
+
97
+ % rubocop <file-name>
98
+
99
+ = Default Style Guide
100
+
101
+ By default, RuboCop use the ruby style guide as the default configuration
102
+
103
+ = Custom Style Guide
104
+
105
+ If you want to customize the style guide, you can create a ((*.rubocop.yml*)) in the same directory where you run rubocop
106
+
107
+ = Custom Style Guide
108
+
109
+ You can use following default configuration file of RuboCop as reference to create .rubocop.yml
110
+
111
+ ((<"github.com/bbatsov/rubocop/blob/master/config/default.yml"|URL:github.com/bbatsov/rubocop/blob/master/config/default.yml>))
112
+
113
+ = Custom Style Guide
114
+
115
+ Consult the following url for more info about configuration
116
+
117
+ ((<"rubocop.readthedocs.io/en/latest/configuration"|URL:http://rubocop.readthedocs.io/en/latest/configuration/>))
118
+
119
+ = Exercise
120
+
121
+ Implement a custom ((*.rubocop.yml*)) configuration file according to your organization convention
122
+
123
+ = Thanks
124
+
125
+ (('tag:center'))Thanks
126
+
127
+ == properties
128
+ : hide-title
129
+ true
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: 201710-coding-conventions-ruby
3
+ base_name: 201710-coding-conventions-ruby
4
+ tags:
5
+ - rabbit
6
+ - ruby
7
+ - rspec
8
+ presentation_date: 2017-10-16
9
+ version: 2017.10.16.1
10
+ licenses:
11
+ - MIT
12
+ slideshare_id:
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: Giovanni Sakti
20
+ email: giosakti@gmail.com
21
+ rubygems_user: giosakti
22
+ slideshare_user:
23
+ speaker_deck_user: giosakti
data/theme.rb ADDED
@@ -0,0 +1,24 @@
1
+ @margin_left = screen_x(1)
2
+ @margin_right = screen_x(1)
3
+
4
+ # @title_slide_title_font_size = @large_font_size
5
+ # @title_slide_subtitle_font_size = @small_font_size
6
+
7
+ match(Slide, HeadLine) do |headlines|
8
+ headlines.horizontal_centering = true
9
+
10
+ # This code below already available as default theme
11
+ # I put it here to show on how to style specific slide
12
+ # headlines.each do |headline|
13
+ # slide = headline.slide
14
+ # headline.hide if slide["hide-title"] == true
15
+ # end
16
+ end
17
+
18
+ match(Slide, Body) do |bodies|
19
+ bodies.vertical_centering = true
20
+ end
21
+
22
+ include_theme("default")
23
+ # include_theme("rabbit-theme-nyankosakana")
24
+ # include_theme("rabbit-theme-yart")
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-giosakti-201710-coding-conventions-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 2017.10.16.1
5
+ platform: ruby
6
+ authors:
7
+ - Giovanni Sakti
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rabbit
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 2.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 2.0.2
27
+ description: This talk gives intro about coding conventions and how can it be enforced
28
+ in ruby.
29
+ email:
30
+ - giosakti@gmail.com
31
+ executables: []
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - ".rabbit"
36
+ - README.md
37
+ - Rakefile
38
+ - coding-conventions-ruby.rab
39
+ - config.yaml
40
+ - pdf/201710-coding-conventions-ruby-201710-coding-conventions-ruby.pdf
41
+ - theme.rb
42
+ homepage: http://slide.rabbit-shocker.org/authors/giosakti/201710-coding-conventions-ruby/
43
+ licenses:
44
+ - MIT
45
+ metadata: {}
46
+ post_install_message:
47
+ rdoc_options: []
48
+ require_paths:
49
+ - lib
50
+ required_ruby_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ requirements: []
61
+ rubyforge_project:
62
+ rubygems_version: 2.6.13
63
+ signing_key:
64
+ specification_version: 4
65
+ summary: Coding Conventions in Ruby
66
+ test_files: []