meta_methods 1.0.3 → 1.0.4

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/.idea/workspace.xml CHANGED
@@ -3,9 +3,6 @@
3
3
  <component name="ChangeListManager">
4
4
  <list default="true" id="cb96d5fa-a536-45ee-8377-2c11e1c06313" name="Default" comment="">
5
5
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
6
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/meta_methods/meta_methods.rb" afterPath="$PROJECT_DIR$/lib/meta_methods/meta_methods.rb" />
7
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/meta_methods/version.rb" afterPath="$PROJECT_DIR$/lib/meta_methods/version.rb" />
8
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/meta_methods.gemspec" afterPath="$PROJECT_DIR$/meta_methods.gemspec" />
9
6
  </list>
10
7
  <ignored path="meta_methods.iws" />
11
8
  <ignored path=".idea/workspace.xml" />
@@ -45,46 +42,46 @@
45
42
  </provider>
46
43
  </entry>
47
44
  </file>
48
- <file leaf-file-name="meta_methods.gemspec" pinned="false" current="false" current-in-tab="false">
45
+ <file leaf-file-name="meta_methods.gemspec" pinned="false" current="true" current-in-tab="true">
49
46
  <entry file="file://$PROJECT_DIR$/meta_methods.gemspec">
50
47
  <provider selected="true" editor-type-id="text-editor">
51
- <state line="7" column="76" selection-start="331" selection-end="331" vertical-scroll-proportion="0.0">
48
+ <state line="7" column="76" selection-start="331" selection-end="331" vertical-scroll-proportion="0.1815235">
52
49
  <folding />
53
50
  </state>
54
51
  </provider>
55
52
  </entry>
56
53
  </file>
57
- <file leaf-file-name="meta_methods.gemspec.erb" pinned="false" current="false" current-in-tab="false">
58
- <entry file="file://$PROJECT_DIR$/meta_methods.gemspec.erb">
54
+ <file leaf-file-name="version.rb" pinned="false" current="false" current-in-tab="false">
55
+ <entry file="file://$PROJECT_DIR$/lib/meta_methods/version.rb">
59
56
  <provider selected="true" editor-type-id="text-editor">
60
- <state line="13" column="8" selection-start="548" selection-end="548" vertical-scroll-proportion="0.0">
57
+ <state line="3" column="44" selection-start="43" selection-end="43" vertical-scroll-proportion="0.0">
61
58
  <folding />
62
59
  </state>
63
60
  </provider>
64
61
  </entry>
65
62
  </file>
66
- <file leaf-file-name="version.rb" pinned="false" current="false" current-in-tab="false">
67
- <entry file="file://$PROJECT_DIR$/lib/meta_methods/version.rb">
63
+ <file leaf-file-name="Rakefile" pinned="false" current="false" current-in-tab="false">
64
+ <entry file="file://$PROJECT_DIR$/Rakefile">
68
65
  <provider selected="true" editor-type-id="text-editor">
69
- <state line="1" column="18" selection-start="37" selection-end="37" vertical-scroll-proportion="0.0">
66
+ <state line="24" column="0" selection-start="474" selection-end="548" vertical-scroll-proportion="0.0">
70
67
  <folding />
71
68
  </state>
72
69
  </provider>
73
70
  </entry>
74
71
  </file>
75
- <file leaf-file-name="Rakefile" pinned="false" current="false" current-in-tab="false">
76
- <entry file="file://$PROJECT_DIR$/Rakefile">
72
+ <file leaf-file-name="meta_methods.rb" pinned="false" current="false" current-in-tab="false">
73
+ <entry file="file://$PROJECT_DIR$/lib/meta_methods/meta_methods.rb">
77
74
  <provider selected="true" editor-type-id="text-editor">
78
- <state line="2" column="0" selection-start="21" selection-end="656" vertical-scroll-proportion="0.0">
75
+ <state line="56" column="0" selection-start="1363" selection-end="1363" vertical-scroll-proportion="0.0">
79
76
  <folding />
80
77
  </state>
81
78
  </provider>
82
79
  </entry>
83
80
  </file>
84
- <file leaf-file-name="meta_methods.rb" pinned="false" current="true" current-in-tab="true">
85
- <entry file="file://$PROJECT_DIR$/lib/meta_methods/meta_methods.rb">
81
+ <file leaf-file-name="meta_methods_spec.rb" pinned="false" current="false" current-in-tab="false">
82
+ <entry file="file://$PROJECT_DIR$/spec/meta_methods_spec.rb">
86
83
  <provider selected="true" editor-type-id="text-editor">
87
- <state line="13" column="22" selection-start="294" selection-end="310" vertical-scroll-proportion="0.33711508">
84
+ <state line="10" column="16" selection-start="155" selection-end="155" vertical-scroll-proportion="0.0">
88
85
  <folding />
89
86
  </state>
90
87
  </provider>
@@ -109,9 +106,9 @@
109
106
  <option value="$PROJECT_DIR$/README.md" />
110
107
  <option value="$PROJECT_DIR$/meta_methods-template.gemspec" />
111
108
  <option value="$PROJECT_DIR$/meta_methods.gemspec" />
112
- <option value="$PROJECT_DIR$/Rakefile" />
113
109
  <option value="$PROJECT_DIR$/Gemfile" />
114
110
  <option value="$PROJECT_DIR$/meta_methods.gemspec.erb" />
111
+ <option value="$PROJECT_DIR$/Rakefile" />
115
112
  <option value="$PROJECT_DIR$/lib/meta_methods/version.rb" />
116
113
  <option value="$PROJECT_DIR$/lib/meta_methods/meta_methods.rb" />
117
114
  </list>
@@ -149,7 +146,6 @@
149
146
  <sortByType />
150
147
  </navigator>
151
148
  <panes>
152
- <pane id="Scope" />
153
149
  <pane id="ProjectPane">
154
150
  <subPane>
155
151
  <PATH>
@@ -168,6 +164,20 @@
168
164
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
169
165
  </PATH_ELEMENT>
170
166
  </PATH>
167
+ <PATH>
168
+ <PATH_ELEMENT>
169
+ <option name="myItemId" value="meta_methods" />
170
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
171
+ </PATH_ELEMENT>
172
+ <PATH_ELEMENT>
173
+ <option name="myItemId" value="meta_methods" />
174
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
175
+ </PATH_ELEMENT>
176
+ <PATH_ELEMENT>
177
+ <option name="myItemId" value="spec" />
178
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
179
+ </PATH_ELEMENT>
180
+ </PATH>
171
181
  <PATH>
172
182
  <PATH_ELEMENT>
173
183
  <option name="myItemId" value="meta_methods" />
@@ -202,9 +212,45 @@
202
212
  </PATH>
203
213
  </subPane>
204
214
  </pane>
215
+ <pane id="Scope" />
205
216
  </panes>
206
217
  </component>
207
- <component name="RunManager">
218
+ <component name="PropertiesComponent">
219
+ <property name="recentsLimit" value="5" />
220
+ </component>
221
+ <component name="RunManager" selected="RSpec.MetaMethodsDemo should evaluate content">
222
+ <configuration default="false" name="MetaMethodsDemo should evaluate content" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
223
+ <predefined_log_file id="RUBY_RSPEC" enabled="true" />
224
+ <module name="meta_methods" />
225
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
226
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="WORK DIR" VALUE="$PROJECT_DIR$/spec" />
227
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SHOULD_USE_SDK" VALUE="false" />
228
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ALTERN_SDK_NAME" VALUE="" />
229
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="myPassParentEnvs" VALUE="true" />
230
+ <envs>
231
+ <env name="JRUBY_OPTS" value="-X+O" />
232
+ </envs>
233
+ <EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
234
+ <EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
235
+ <COVERAGE_PATTERN ENABLED="true">
236
+ <PATTERN REGEXPS="/.rvm/" INCLUDED="false" />
237
+ </COVERAGE_PATTERN>
238
+ </EXTENSION>
239
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
240
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$PROJECT_DIR$/spec/meta_methods_spec.rb" />
241
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
242
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
243
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="MetaMethodsDemo should evaluate content" />
244
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
245
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
246
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
247
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="USE_CUSTOM_SPEC_RUNNER" VALUE="false" />
248
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="DRB" VALUE="false" />
249
+ <RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
250
+ <RunnerSettings RunnerId="RubyRunner" />
251
+ <ConfigurationWrapper RunnerId="RubyRunner" />
252
+ <method />
253
+ </configuration>
208
254
  <configuration default="true" type="RSpecRunConfigurationType" factoryName="RSpec">
209
255
  <predefined_log_file id="RUBY_RSPEC" enabled="true" />
210
256
  <module name="" />
@@ -275,23 +321,30 @@
275
321
  <RTEST_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_OPTIONS" VALUE="" />
276
322
  <method />
277
323
  </configuration>
278
- <list size="0" />
324
+ <list size="1">
325
+ <item index="0" class="java.lang.String" itemvalue="RSpec.MetaMethodsDemo should evaluate content" />
326
+ </list>
327
+ <recent_temporary>
328
+ <list size="1">
329
+ <item index="0" class="java.lang.String" itemvalue="RSpec.MetaMethodsDemo should evaluate content" />
330
+ </list>
331
+ </recent_temporary>
279
332
  </component>
280
333
  <component name="ShelveChangesManager" show_recycled="false" />
281
334
  <component name="ToolWindowManager">
282
335
  <frame x="240" y="142" width="1588" height="1058" extended-state="0" />
283
- <editor active="true" />
336
+ <editor active="false" />
284
337
  <layout>
285
- <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.3298647" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
338
+ <window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298647" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
286
339
  <window_info id="CSS-X-Fire" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
287
340
  <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
288
341
  <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="true" content_ui="tabs" />
289
342
  <window_info id="jenkinsBrowser" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
290
- <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.67013526" order="0" side_tool="false" content_ui="combo" />
343
+ <window_info id="Project" active="true" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.25" sideWeight="0.67013526" order="0" side_tool="false" content_ui="combo" />
291
344
  <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
292
345
  <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
293
346
  <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
294
- <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
347
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3298647" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
295
348
  <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
296
349
  <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
297
350
  <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
@@ -359,11 +412,6 @@
359
412
  <breakpoint-manager />
360
413
  </component>
361
414
  <component name="editorHistoryManager">
362
- <entry file="file://$PROJECT_DIR$/lib/meta_methods.rb">
363
- <provider selected="true" editor-type-id="text-editor">
364
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
365
- </provider>
366
- </entry>
367
415
  <entry file="file://$USER_HOME$/.rvm/gems/ruby-1.9.2-p318@global/gems/bundler-1.1.3/lib/bundler/environment.rb">
368
416
  <provider selected="true" editor-type-id="text-editor">
369
417
  <state line="25" column="8" selection-start="499" selection-end="499" vertical-scroll-proportion="0.273906" />
@@ -418,37 +466,42 @@
418
466
  </state>
419
467
  </provider>
420
468
  </entry>
421
- <entry file="file://$PROJECT_DIR$/Rakefile">
469
+ <entry file="file://$PROJECT_DIR$/meta_methods.gemspec.erb">
422
470
  <provider selected="true" editor-type-id="text-editor">
423
- <state line="2" column="0" selection-start="21" selection-end="656" vertical-scroll-proportion="0.0">
471
+ <state line="13" column="8" selection-start="548" selection-end="548" vertical-scroll-proportion="0.35135135" />
472
+ </provider>
473
+ </entry>
474
+ <entry file="file://$PROJECT_DIR$/lib/meta_methods/meta_methods.rb">
475
+ <provider selected="true" editor-type-id="text-editor">
476
+ <state line="56" column="0" selection-start="1363" selection-end="1363" vertical-scroll-proportion="0.0">
424
477
  <folding />
425
478
  </state>
426
479
  </provider>
427
480
  </entry>
428
- <entry file="file://$PROJECT_DIR$/meta_methods.gemspec">
481
+ <entry file="file://$PROJECT_DIR$/spec/meta_methods_spec.rb">
429
482
  <provider selected="true" editor-type-id="text-editor">
430
- <state line="7" column="76" selection-start="331" selection-end="331" vertical-scroll-proportion="0.0">
483
+ <state line="10" column="16" selection-start="155" selection-end="155" vertical-scroll-proportion="0.0">
431
484
  <folding />
432
485
  </state>
433
486
  </provider>
434
487
  </entry>
435
- <entry file="file://$PROJECT_DIR$/meta_methods.gemspec.erb">
488
+ <entry file="file://$PROJECT_DIR$/lib/meta_methods/version.rb">
436
489
  <provider selected="true" editor-type-id="text-editor">
437
- <state line="13" column="8" selection-start="548" selection-end="548" vertical-scroll-proportion="0.0">
490
+ <state line="3" column="44" selection-start="43" selection-end="43" vertical-scroll-proportion="0.0">
438
491
  <folding />
439
492
  </state>
440
493
  </provider>
441
494
  </entry>
442
- <entry file="file://$PROJECT_DIR$/lib/meta_methods/version.rb">
495
+ <entry file="file://$PROJECT_DIR$/Rakefile">
443
496
  <provider selected="true" editor-type-id="text-editor">
444
- <state line="1" column="18" selection-start="37" selection-end="37" vertical-scroll-proportion="0.0">
497
+ <state line="24" column="0" selection-start="474" selection-end="548" vertical-scroll-proportion="0.0">
445
498
  <folding />
446
499
  </state>
447
500
  </provider>
448
501
  </entry>
449
- <entry file="file://$PROJECT_DIR$/lib/meta_methods/meta_methods.rb">
502
+ <entry file="file://$PROJECT_DIR$/meta_methods.gemspec">
450
503
  <provider selected="true" editor-type-id="text-editor">
451
- <state line="13" column="22" selection-start="294" selection-end="310" vertical-scroll-proportion="0.33711508">
504
+ <state line="7" column="76" selection-start="331" selection-end="331" vertical-scroll-proportion="0.1815235">
452
505
  <folding />
453
506
  </state>
454
507
  </provider>
data/Rakefile CHANGED
@@ -22,6 +22,10 @@ task :build do
22
22
  system "gem build #{project_name}.gemspec"
23
23
  end
24
24
 
25
+ task :install do
26
+ system "gem install #{project_name}-#{version}.gem"
27
+ end
28
+
25
29
  task :release => :build do
26
30
  system "gem push #{project_name}-#{version}.gem"
27
31
  end
@@ -5,19 +5,19 @@ module MetaMethods
5
5
  end
6
6
  end
7
7
 
8
- def define_attributes(type, object, hash, create_instance_variable=true)
8
+ def define_attributes(type, object, hash, create_instance=true)
9
9
  hash.each_pair do |key, value|
10
- define_attribute(type, object, key, value, create_instance_variable)
10
+ define_attribute(type, object, key, value, create_instance)
11
11
  end
12
12
  end
13
13
 
14
- def define_attribute(type, object, key, value, create_instance_variable=true)
15
- if create_instance_variable
14
+ def define_attribute(type, object, key, value, create_instance=true)
15
+ if create_instance
16
16
  metaclass(object).send type, key.to_sym
17
17
 
18
18
  object.instance_variable_set("@#{key}".to_sym, value)
19
19
  else
20
- object.class.class_eval <<-CODE
20
+ metaclass(object).class_eval <<-CODE
21
21
  def #{key}
22
22
  "#{value}"
23
23
  end
@@ -33,19 +33,13 @@ module MetaMethods
33
33
  extract_values(defined_vars(scope), scope)
34
34
  end
35
35
 
36
- def evaluate_dsl(create_block, destroy_block, execute_block)
36
+ def evaluate_dsl(create_block, destroy_block, execute_block, access_block_scope=true)
37
37
  object = nil
38
38
 
39
39
  begin
40
40
  object = create_block.kind_of?(Proc) ? create_block.call : create_block
41
- object.instance_variable_set(:@execute_block, execute_block)
42
41
 
43
- def object.method_missing(sym, *args, &block)
44
- block_binding = @execute_block.binding
45
- caller = block_binding.eval 'self'
46
-
47
- caller.send sym, *args, &block
48
- end
42
+ access_block_scope(object, @execute_block) if access_block_scope
49
43
 
50
44
  object.instance_eval(&execute_block)
51
45
  ensure
@@ -55,8 +49,20 @@ module MetaMethods
55
49
 
56
50
  private
57
51
 
52
+ def access_block_scope object, block
53
+ object.instance_variable_set(:@execute_block, block)
54
+
55
+ def object.method_missing(sym, *args, &block)
56
+ block_binding = @execute_block.binding
57
+
58
+ caller = block_binding.eval 'self'
59
+
60
+ caller.send sym, *args, &block
61
+ end
62
+ end
63
+
58
64
  def defined_vars scope
59
- eval("local_variables", scope) - Kernel.local_variables - ["content"]
65
+ eval("local_variables", scope) - Kernel.local_variables - %w(content)
60
66
  end
61
67
 
62
68
  def extract_values vars_list, scope
@@ -1,3 +1,3 @@
1
1
  module MetaMethods
2
- VERSION = "1.0.3"
2
+ VERSION = "1.0.4"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: meta_methods
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.0.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-13 00:00:00.000000000 Z
12
+ date: 2012-06-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: gemspec_deps_gen