wrap_it 1.0.0 → 1.0.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.
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