wrap_it 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 995784a5858c83bfefb7ec041d0019e87535b279
4
- data.tar.gz: 0e68c3329c7e692bbc685c09caf13981b7dcaa2a
3
+ metadata.gz: 1ebe2ad310631e9623416e7ab4cfbbfe46e8299f
4
+ data.tar.gz: d2609b1ad7a2f276e0d6f0d2753dac14ec0d8b48
5
5
  SHA512:
6
- metadata.gz: 7fb4f2c24ce43bcdbb875dbc303aaa5562a0eb25d91aec437b6b30d254a1e2a3c6a9a22d8de9c00704048317b5aaf18ce19cfe00bb69765fd9735ddfb6801801
7
- data.tar.gz: 0b026802d29c1c858e92d6de642b823a113b75fffef8a2c5420cd2b449137289c455d74eb87a7d2380ab86123dcf6a48ee7a16de6e9a6bbdd490638c55cd3f57
6
+ metadata.gz: e12f303b02f14177941305aee0b2e9102de737e1a2fd4b372a2481c9d7258ea5ef73f8f9dc618223b3a8c5f052bf4c7eb424a61ea9a83b120868475d2efb70de
7
+ data.tar.gz: a1b58c8121c98f0e39a6e645f2b2512210d90cced8e4c86ba11104012be533b2204b80381866aa2a6996991596b29eb5e70896296614f0296eb25001fe55e630
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0-p353
4
+ - 2.1.0
5
+ - ruby-head
6
+ env:
7
+ - FRAMEWORK=rails4 BUNDLE_GEMFILE=Gemfile.rails4
8
+ - FRAMEWORK=rails4 BUNDLE_GEMFILE=Gemfile.rails4
9
+ - FRAMEWORK=rails4 BUNDLE_GEMFILE=Gemfile.rails4
10
+ gemfile:
11
+ - Gemfile.rails4
12
+ - Gemfile.rails4
13
+ - Gemfile.rails4
data/Gemfile.rails4 CHANGED
@@ -2,4 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'rails', '~> 4'
5
+ gem 'rails', '~> 4.0'
6
+ gem 'coveralls', require: false
7
+
data/Gemfile.sinatra CHANGED
@@ -3,3 +3,5 @@ source 'https://rubygems.org'
3
3
  gemspec
4
4
 
5
5
  gem 'sinatra'
6
+ gem 'coveralls', require: false
7
+
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  [![Gem Version](https://badge.fury.io/rb/wrap_it.png)](http://badge.fury.io/rb/wrap_it)
2
2
  [![Code Climate](https://codeclimate.com/github/cybernetlab/wrap_it.png)](https://codeclimate.com/github/cybernetlab/wrap_it)
3
+ [![Build Status](https://travis-ci.org/cybernetlab/wrap_it.png?branch=master)](https://travis-ci.org/cybernetlab/wrap_it)
4
+ [![Coverage Status](https://coveralls.io/repos/cybernetlab/wrap_it/badge.png?branch=master)](https://coveralls.io/r/cybernetlab/wrap_it?branch=master)
3
5
 
4
6
  # WrapIt
5
7
 
@@ -356,6 +358,12 @@ Look to [Reference documentation](http://rubydoc.info/github/cybernetlab/wrap_it
356
358
 
357
359
  # Changes
358
360
 
361
+ `1.0.1`
362
+ * refactor some code to remove complexity
363
+ * code now tested with [travis](https://travis-ci.org/cybernetlab/wrap_it)
364
+ * code now checked for test coverage by [coveralls](https://coveralls.io/r/cybernetlab/wrap_it)
365
+ * code quality now checked by [codeclimate](https://codeclimate.com/github/cybernetlab/wrap_it)
366
+
359
367
  `1.0.0`
360
368
  * first release version
361
369
  * a lot of code refactored
data/Rakefile CHANGED
@@ -24,4 +24,7 @@ require 'rspec/core/rake_task'
24
24
  # end
25
25
 
26
26
  #YARD::Rake::YardocTask.new
27
- RSpec::Core::RakeTask.new
27
+
28
+ RSpec::Core::RakeTask.new(:spec)
29
+
30
+ task :default => :spec
data/lib/wrap_it/base.rb CHANGED
@@ -186,12 +186,11 @@ module WrapIt
186
186
  end
187
187
  end
188
188
 
189
- def render_sections(*sections)
190
- opts = sections.extract_options!
189
+ def render_sections(*sections, except: nil)
191
190
  sections.empty? && sections = self.class.sections
192
- if opts.key?(:except)
193
- opts[:except].is_a?(Array) || opts[:except] = [opts[:except]]
194
- sections.reject! { |s| opts[:except].include?(s) }
191
+ unless except.nil?
192
+ except.is_a?(Array) || except = [except]
193
+ sections.reject! { |s| except.include?(s) }
195
194
  end
196
195
  # glew sections
197
196
  self.class.placement
@@ -76,7 +76,7 @@ module WrapIt
76
76
  # {Sections} module for details.
77
77
  #
78
78
  # @return [String]
79
- def self.child(name, *args, &block)
79
+ def self.child(name, *args, option: nil, **opts, &block)
80
80
  name.is_a?(String) && name.to_sym
81
81
  name.is_a?(Symbol) || fail(ArgumentError, 'Wrong child name')
82
82
  child_class =
@@ -87,35 +87,15 @@ module WrapIt
87
87
  end
88
88
  child_class = child_class.name if child_class.is_a?(Class)
89
89
 
90
- opts = args.extract_options!
91
- extract = opts.delete(:option)
92
- args << opts
93
-
94
- define_method name do |*helper_args, &helper_block|
95
- # We should clone arguments becouse if we have loop in template,
96
- # `extract_options!` below works only for first iterration
97
- default_args = args.clone
98
- options = helper_args.extract_options!
99
- options[:helper_name] = name
100
- options.merge!(default_args.extract_options!)
101
- helper_args += default_args + [options]
102
- add_children(name, child_class, block, *helper_args, &helper_block)
90
+ define_method name do |*hargs, extracted: false, **hopts, &hblock|
91
+ hargs += args
92
+ hopts.merge!(opts)
93
+ hopts[:helper_name] = name
94
+ child = prepare_child(child_class, block, *hargs, **hopts, &hblock)
95
+ add_children(name, child, extracted: extracted)
103
96
  end
104
97
 
105
- unless extract.nil?
106
- extract.is_a?(Array) || extract = [extract]
107
- extract.each do |opt_name|
108
- opt_name = name if opt_name == true
109
- option(opt_name) do |_, arguments|
110
- self.deffered_render = true
111
- arguments.is_a?(Array) || arguments = [arguments]
112
- o = arguments.extract_options!
113
- o.merge!(extracted: true)
114
- arguments << o
115
- send name, *arguments
116
- end
117
- end
118
- end
98
+ add_child_option(name, option)
119
99
  end
120
100
 
121
101
  after_capture do
@@ -145,14 +125,30 @@ module WrapIt
145
125
  CONTENT_SPLIT_REGEXP = /(<!-- WrapIt::Container\(\h+\) -->)/
146
126
  CONTENT_REPLACE_REGEXP = /\A<!-- WrapIt::Container\((?<obj_id>\h+)\) -->\z/
147
127
 
148
- def add_children(name, helper_class, class_block, *args, &helper_block)
149
- options = args.extract_options!
150
- section = options.delete(:section) || :children
151
- extracted = options.delete(:extracted) == true
152
- args << options
128
+ def add_children(name, item, extracted: false)
129
+ deffered_render? && @children << item
130
+ return if extracted == true
131
+ if !deffered_render? && (omit_content? || extract_children?)
132
+ self[item.render_to] << capture { item.render }
133
+ end
134
+ if omit_content? || extract_children?
135
+ empty_html
136
+ else
137
+ if deffered_render?
138
+ html_safe("<!-- WrapIt::Container(#{item.object_id.to_s(16)}) -->")
139
+ else
140
+ item.render
141
+ end
142
+ end
143
+ end
144
+
145
+ def prepare_child(helper_class, class_block, *args,
146
+ section: nil, **opts,
147
+ &helper_block)
148
+ section ||= :children
153
149
  item = Object
154
150
  .const_get(helper_class)
155
- .new(@template, *args, &helper_block)
151
+ .new(@template, *args, **opts, &helper_block)
156
152
  item.instance_variable_set(:@render_to, section)
157
153
  item.instance_variable_set(:@parent, self)
158
154
  item.define_singleton_method(:render_to) { @render_to }
@@ -161,19 +157,19 @@ module WrapIt
161
157
  end
162
158
  item.define_singleton_method(:parent) { @parent }
163
159
  class_block.nil? || instance_exec(item, &class_block)
160
+ item
161
+ end
164
162
 
165
- deffered_render? && @children << item
166
- return if extracted
167
- if !deffered_render? && (omit_content? || extract_children?)
168
- self[section] << capture { item.render }
169
- end
170
- if omit_content? || extract_children?
171
- empty_html
172
- else
173
- if deffered_render?
174
- html_safe("<!-- WrapIt::Container(#{item.object_id.to_s(16)}) -->")
175
- else
176
- item.render
163
+ def self.add_child_option(name, option)
164
+ return if option.nil?
165
+ option.is_a?(Array) || option = [option]
166
+ option.each do |opt_name|
167
+ opt_name = name if opt_name == true
168
+ option(opt_name) do |_, args|
169
+ self.deffered_render = true
170
+ args.is_a?(Array) || args = [args]
171
+ opts = args.extract_options!
172
+ send(name, *args, extracted: true, **opts)
177
173
  end
178
174
  end
179
175
  end
@@ -1,5 +1,5 @@
1
1
  #
2
2
  module WrapIt
3
3
  # Current gem version
4
- VERSION = '1.0.0'
4
+ VERSION = '1.0.1'
5
5
  end
@@ -3739,3 +3739,107 @@
3739
3739
  Rendered inline template (2.8ms)
3740
3740
  Rendered inline template (1.7ms)
3741
3741
  Rendered inline template (1.7ms)
3742
+ Rendered inline template (16.8ms)
3743
+ Rendered inline template (1.8ms)
3744
+ Rendered inline template (1.8ms)
3745
+ Rendered inline template (2.4ms)
3746
+ Rendered inline template (2.5ms)
3747
+ Rendered inline template (3.2ms)
3748
+ Rendered inline template (2.5ms)
3749
+ Rendered inline template (1.9ms)
3750
+ Rendered inline template (2.0ms)
3751
+ Rendered inline template (5.0ms)
3752
+ Rendered inline template (9.3ms)
3753
+ Rendered inline template (7.1ms)
3754
+ Rendered inline template (6.7ms)
3755
+ Rendered inline template (5.8ms)
3756
+ Rendered inline template (1.8ms)
3757
+ Rendered inline template (4.9ms)
3758
+ Rendered inline template (1.9ms)
3759
+ Rendered inline template (2.0ms)
3760
+ Rendered inline template (2.2ms)
3761
+ Rendered inline template (2.4ms)
3762
+ Rendered inline template (2.5ms)
3763
+ Rendered inline template (3.3ms)
3764
+ Rendered inline template (2.6ms)
3765
+ Rendered inline template (1.9ms)
3766
+ Rendered inline template (1.9ms)
3767
+ Rendered inline template (9.0ms)
3768
+ Rendered inline template (6.3ms)
3769
+ Rendered inline template (2.0ms)
3770
+ Rendered inline template (6.6ms)
3771
+ Rendered inline template (8.8ms)
3772
+ Rendered inline template (5.8ms)
3773
+ Rendered inline template (2.1ms)
3774
+ Rendered inline template (2.6ms)
3775
+ Rendered inline template (2.5ms)
3776
+ Rendered inline template (2.9ms)
3777
+ Rendered inline template (3.1ms)
3778
+ Rendered inline template (3.8ms)
3779
+ Rendered inline template (3.3ms)
3780
+ Rendered inline template (1.9ms)
3781
+ Rendered inline template (2.0ms)
3782
+ Rendered inline template (6.0ms)
3783
+ Rendered inline template (1.7ms)
3784
+ Rendered inline template (1.9ms)
3785
+ Rendered inline template (1.8ms)
3786
+ Rendered inline template (2.6ms)
3787
+ Rendered inline template (2.7ms)
3788
+ Rendered inline template (2.6ms)
3789
+ Rendered inline template (3.4ms)
3790
+ Rendered inline template (2.1ms)
3791
+ Rendered inline template (2.1ms)
3792
+ Rendered inline template (6.1ms)
3793
+ Rendered inline template (6.4ms)
3794
+ Rendered inline template (2.0ms)
3795
+ Rendered inline template (2.9ms)
3796
+ Rendered inline template (6.1ms)
3797
+ Rendered inline template (6.3ms)
3798
+ Rendered inline template (6.9ms)
3799
+ Rendered inline template (2.3ms)
3800
+ Rendered inline template (2.0ms)
3801
+ Rendered inline template (6.6ms)
3802
+ Rendered inline template (1.9ms)
3803
+ Rendered inline template (22.0ms)
3804
+ Rendered inline template (3.0ms)
3805
+ Rendered inline template (6.8ms)
3806
+ Rendered inline template (6.3ms)
3807
+ Rendered inline template (1.6ms)
3808
+ Rendered inline template (1.7ms)
3809
+ Rendered inline template (1.9ms)
3810
+ Rendered inline template (3.0ms)
3811
+ Rendered inline template (2.5ms)
3812
+ Rendered inline template (2.4ms)
3813
+ Rendered inline template (2.3ms)
3814
+ Rendered inline template (3.3ms)
3815
+ Rendered inline template (2.2ms)
3816
+ Rendered inline template (2.4ms)
3817
+ Rendered inline template (2.7ms)
3818
+ Rendered inline template (2.4ms)
3819
+ Rendered inline template (3.1ms)
3820
+ Rendered inline template (2.7ms)
3821
+ Rendered inline template (5.0ms)
3822
+ Rendered inline template (2.9ms)
3823
+ Rendered inline template (6.7ms)
3824
+ Rendered inline template (1.9ms)
3825
+ Rendered inline template (6.9ms)
3826
+ Rendered inline template (6.2ms)
3827
+ Rendered inline template (6.7ms)
3828
+ Rendered inline template (1.9ms)
3829
+ Rendered inline template (2.0ms)
3830
+ Rendered inline template (4.0ms)
3831
+ Rendered inline template (1.9ms)
3832
+ Rendered inline template (4.9ms)
3833
+ Rendered inline template (6.3ms)
3834
+ Rendered inline template (1.9ms)
3835
+ Rendered inline template (6.4ms)
3836
+ Rendered inline template (7.1ms)
3837
+ Rendered inline template (6.8ms)
3838
+ Rendered inline template (3.1ms)
3839
+ Rendered inline template (1.7ms)
3840
+ Rendered inline template (1.9ms)
3841
+ Rendered inline template (1.7ms)
3842
+ Rendered inline template (2.5ms)
3843
+ Rendered inline template (2.4ms)
3844
+ Rendered inline template (3.0ms)
3845
+ Rendered inline template (2.5ms)
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
+ require 'coveralls'
4
+
5
+ Coveralls.wear!
3
6
 
4
7
  Bundler.require :default, :development
5
8
 
data/wrap_it.gemspec CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_development_dependency 'bundler', '~> 1.3'
30
30
  spec.add_development_dependency 'rake', '~> 10.1'
31
- spec.add_development_dependency 'redcarpet', '~> 1.17'
31
+ spec.add_development_dependency 'redcarpet', '~> 3.0'
32
32
  spec.add_development_dependency 'yard', '~> 0.8'
33
33
  spec.add_development_dependency 'rspec', '~> 2.14'
34
34
  spec.add_development_dependency 'rspec-html-matchers', '~> 0.4'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wrap_it
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexey Ovchinnikov
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '1.17'
47
+ version: '3.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '1.17'
54
+ version: '3.0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: yard
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -105,6 +105,7 @@ files:
105
105
  - .rspec
106
106
  - .rubocop.yml
107
107
  - .ruby-version
108
+ - .travis.yml
108
109
  - .yardopts
109
110
  - Gemfile
110
111
  - Gemfile.rails4