meta_methods 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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